Vue
你是如何理解Vue构建的“单页面”应用的(怎么理解单页面)?
单页面(MPA) 单页面应用只有一个页面,浏览器加载主页时加载所有的资源,通过hash值的改变来表示究竟要展示哪个组件。
给window注册onhashchange事件,当哈希值改变时通过location.hash就能获得相应的哈希值,然后就能跳到相应的页面
多页面(MPA) 就是指一个应用中有多个页面,页面跳转时是整页刷新
url地址是由:协议名 域名 端口号 路径 哈希值组成
优点:
1. 用户体验好,快,内容的改变不需要重新加载整个页面,对服务器压力较小
2. 前后端分离,易于开发
3. 完全的前端组件化,前端开发不再以页面为单位,更多地采用组件化的思想,代码结构和组织方式更加规范化,便于修改和调整
缺点:
1. 不支持低版本的浏览器,最低只支持到IE9;
2. 不利于SEO的优化(如果要支持SEO,建议通过服务端来进行渲染组件);
3. 第一次加载首页耗时相对长一些;不可以使用浏览器的导航按钮需要自行实现前进、后退。
Vue的双向绑定是如何实现的?在平时的项目中你在哪儿应用双向绑定比较多?
vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的,
通过Object.defineProperty()对其get和set进行重写操作,
get是在读取name属性这个值触发的函数,set是在设置name属性这个值触发的函数。
Vue的指令有哪些?
1. v-text v-text主要用来更新textContent,可以等同于JS的text属性。
<span v-text="msg"></span>
2. v-html 双大括号的方式会将数据解释为纯文本,而非HTML。为了输出真正的HTML,可以用v-html指令。它等同于JS的innerHtml属性。
<div v-html="rawHtml"></div>
3. v-pre 主要用来跳过这个元素和它的子元素编译过程。可以用来显示原始的Mustache标签。跳过大量没有指令的节点加快编译。
<div id="app">
<span v-pre>{{message}}</span> //这条语句不进行编译
<span>{{message}}</span>
</div>
4. v-cloak 用来保持在元素上直到关联实例结束时进行编译
讲一下Vue的虚拟DOM原理?
你是如何理解Vue的MVVM架构的?
组件传值有哪几种方式?具体是如何实现的?
ue-router有哪几种使用模式?它们的区别是什么
和JQuery做对比的话,你觉得vue的优势和劣势在哪里
v-show与v-if的区别
**v-show:**操作的是元素的display属性
**v-if:操作的是元素的创建和插入
相比较而言v-show的性能要高
** methods、computed、watch三者的区别
methods是个方法,执行的时候需要事件进行触发
computed是一个计算属性,是实时响应的,只要data中的属性发生了变化那么就会触发computed,计算属 性是基于属性的依赖进行缓存的,methods调用的时候需要加(),而computed调用的时候是不需要加()
watch属性监听,watch用来监听属性的变化,当值发生变化的时候来执行特定的函数,watch监听属性的时候 会有2个参数newVal和oldVal一个新值一个旧值
vue中自定义指令如何使用
Vue.directive():
参数1:指令名称
参数2:指令实现的函数,在回调函数中第一次参数是指令绑定的元素,参数二是一个对象其中对象中有value 属性代表的是表达式返回的结果,还有modifiers属性是指令的修饰符
vue中组件创建的方式有哪些?
全局组件和局部组件
全局组件 Vue.component();参数1:组件名称 参数2:组件的配置项
局部组件 new Vue({ components:{} key值为组件名称 val值为组件的配置项 })
vue中的过滤器如何使用
Vue.filter()
参数1:过滤器名称
参数2:过滤器实现的方法 该方法中有2个参数 参数1为需要过滤的数据,参数2为过滤器传递的参数
如何实现父子组件传值、非父子组件传值
父组件传递子组件:通过属性进行传递 接受用props属性进行接受。 props属性用来接收外部属性。 在父组件中当子组件当作标签使用的时候给子组件添加属性,值为需要传递的值。在子组件内部通过props 进行接受。接受的方式有2种,第一种为数组接受,第二种为对象接受,推荐用第二种,对象形式的可以限制数据的类型
子组件传父组件
在父组件中当子组件当作标签使用的时候给子组件绑定自定义方法,子组件通过this.$emit()进行触发。注意 自定义方法是不需要加()的
请说出vue中生命周期函数(钩子函数)
JS
- 平时经常用到JS数组的哪些方法?
- 平时经常用到JS数组的哪些方法?
- 你常用到的ES6哪些新特性?
- ES6中的模板字符串是如何定义的?
- 比较一下var和let的区别
http网络传输:
- http和https之间的区别
- http和https之间的区别
- 建立TCP连接有几次握手,断开连接有几次挥手
CSS
- 如何理解盒模型,它有几种实现方式,区别在哪里
- webpack是如何实现按需加载的
webpack是如何实现按需加载的
- webpack是如何处理模块之间的关系的,原理是什么
- webpack是如何实现按需加载的
前端性能优化
- 平时在写项目的过程中有用到哪些优化的方法,例举一下并说一下原理
Jquery
- 说说你理解的JQ