文章目录
请描述封装vue组件作用过程
Vue.js 的双向数据绑定原理是什么?
vue Router 是什么?它有哪些组件?
导航钩子有哪些?它们有哪些参数?
请描述封装vue组件作用过程
纽件可以提升整个项目的开发效率,能够把页面抽象成多个相对独立的模块
解决了传统项目开发中效率低、难维护、复用性等问题
使用 Vue.extend 方法创建 一个组件,使用 Vue.component 方法注册纽件,子组件需要数据
,可以在 props 中接收数据,
而子组件修改好数据后,若想把数据传递给父组件,可以采用 emit 方法
Vue.js 的双向数据绑定原理是什么?
Vue.js 采用 ES5 提供的属性特性功能 ,结合发布者-订阅者模式通过 Object.defineProperty为各个属性定义 get set 特性方 法,在数据发生改变时给阅读者发布消息,触发相应的监听回调
具体步骤如下。
(1)对需要观察的数据对象进行递归遍历,包括子属性对象的属性,设置set和get特性方法。当给这个对象的某个值赋值时,会触发绑定的set特性方法,于是就能监听到数据变化。
(2)用compile解析模板指令,将模板中的变量替换成数据。然后初始化渲染页面视图,并将每个指令对应的节点绑定更新函数,添加监听数据的订阅者。一旦数据有变动,就会收到通知,并更新视图。
(3) Watcher订阅者是Observer和Compile之间通信的桥梁,主要功能如下。
●在自身实例化时向属性订阅器(dep) 里面添加自己。
●自身必须有一个update()方法。
●在dep.notice()发布通知时,能调用自身的update()方法,并触发Compile 中绑定的回调函数。
(4) MVVM是数据绑定的入口,整合了Observer、 Compile和Watcher三者,通过Observer来监听自己的model数据变化,通过Compile来解析编译模板指令,最终利用Watcher搭起Observer和Compile之间的通信桥梁,达到数据变化通知视图更新的效果。
利用视图交互,变化更新数据model变更的双向绑定效果。
vue Router 是什么?它有哪些组件?
它是Vue.js的路由插件。组件包括router-ink和router-view.
导航钩子有哪些?它们有哪些参数?
导航钩子又称导航守卫,又分为全局钩子、单个路由独享钩子和组件级钩子。
全局钩子有beforeEach、beforeResolve ( Vue 2.5.0新增的). afterEach,
单个路由独享钩子有beforeEnter.
组件级钩子有beforeRouteEnter. beforeRouteUpdate( Vue 2.2新增的)、beforeRouteL eave。
它们有以下参数。
●to::即将要进入的目标路由对象。
●from:当前导航正要离开的路由。
●next: 一定要用这个函数才能到达下一个路由,如果不用就会遭到拦截。