1.vue生命周期
2.组件传值
3.插槽:具名插槽:<slot name="header">slot>
作用域插槽
4.对 MVVM 的理解:MVVM 是 Model-View-ViewModel 的缩写,核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自动传递给 View
5.Vue 的优点:
- 响应式编程
- 组件化开发
- 虚拟 DOM
6.hash 模式和 history 模式: hash 模式有“#”,history 模式没有
7.vueRouter 的导航守卫:
- 全局前置/钩子:beforeEach、beforeR-esolve、afterEach
- 路由独享的守卫:beforeEnter
- 组件内的守卫:beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave
8.Vue SSR 的实现原理:通过 vue-server-renderer 把 Vue 的组件输出成一个完整 HTML,输出到客户端,到达客户端后重新展开为一个单页应用。
9.vue单页面(SPA)优缺点:
优点:用户体验好,快,内容的改变不需要重新加载整个页面,基于这一点spa对服务器压力较 小;前后端分离
缺点:不利于seo;导航不可用,如果一定要导航需要自行实现前进、后退。初次加载时耗时多;页面复杂度提高很多
10.vuex的五个状态:state、getter、mutation、action、module
11.Proxy 相比 defineProperty 的优势在哪里:
- Object.defineProperty 只能劫持对象属性的 getter 和 setter 方法,
- Object.defineProperty 不支持数组
- Proxy 是直接代理劫持整个对象
- Proxy 可以直接监听对象和数组的变化
12.vue响应原理:
Vue2.x 采用数据劫持结合发布订阅模式(PubSub 模式)的方式,通过 Object.defineProperty 来劫持各个属性的 setter、getter,在数据变动时发布消息给订阅者,触发相应的监听回调。
13.双向绑定的原理:
Vue 的数据双向绑定整合了 Observer,Compile 和 Watcher 三者,通过 Observer 来监听自己的 model 的数据变化,通过 Compile 来解析编译模板指令,最终利用 Watcher 搭起 Observer 和 Compile 之间的通信桥梁,达到数据变化->视图更新,视图交互变化(例如 input 操作)->数据 model 变更的双向绑定效果