vue相关面试题2:1.封装vue组件作用;2双向数据绑定原理;3.Router 是什么;4.导航钩子有哪些

简介: 它们有以下参数。●to::即将要进入的目标路由对象。●from:当前导航正要离开的路由。●next: 一定要用这个函数才能到达下一个路由,如果不用就会遭到拦截。

文章目录

请描述封装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: 一定要用这个函数才能到达下一个路由,如果不用就会遭到拦截。


目录
相关文章
|
17天前
|
JavaScript
Vue 父传子组件传参 defineProps
Vue 父传子组件传参 defineProps
|
17天前
|
JavaScript 前端开发
Vue 创建组件
Vue 创建组件
|
21天前
|
JavaScript
vue给table组件添加合计
vue给table组件添加合计
12 0
|
1月前
|
存储 JavaScript BI
vue组件间通信的几个方法
vue组件间通信的几个方法
23 0
|
17天前
|
JavaScript
vue路由导航守卫(全局守卫、路由独享守卫、组件内守卫)
vue路由导航守卫(全局守卫、路由独享守卫、组件内守卫)
33 0
|
1天前
|
JavaScript
vue面试
vue面试
9 0
|
8天前
|
JavaScript
Vue Steps步骤组件用法
Vue Steps步骤组件用法
13 0
|
12天前
|
机器学习/深度学习 分布式计算 BI
Flink实时流处理框架原理与应用:面试经验与必备知识点解析
【4月更文挑战第9天】本文详尽探讨了Flink实时流处理框架的原理,包括运行时架构、数据流模型、状态管理和容错机制、资源调度与优化以及与外部系统的集成。此外,还介绍了Flink在实时数据管道、分析、数仓与BI、机器学习等领域的应用实践。同时,文章提供了面试经验与常见问题解析,如Flink与其他系统的对比、实际项目挑战及解决方案,并展望了Flink的未来发展趋势。附带Java DataStream API代码样例,为学习和面试准备提供了实用素材。
34 0
|
13天前
|
JavaScript
vue 组件注册
vue 组件注册
|
13天前
|
JavaScript
vue 组件事件
vue 组件事件