1.veu-router中的路由守卫有哪些?
导航守卫是Vue Router提供的在路由跳转前后做处理的钩子API
主要有3种导航守卫:全局守卫、路由独享守卫、组件内守卫
2.VueX 的作用和使用?
Vuex是一个专门为 vue.js 应用程序设计的状态管理库,统一管理和维护各个vue组件的可变化状态。
Vuex有5个核心属性:
1.状态:state => 基本数据
2.getter => 从基本数据派生的数据
3.突变:mutations => 提交更改数据的方法,提交mutitions是更改store中状态的唯一方法
4.行动:actions => 像一个装饰器,包裹mutations,使之可以异步
5.模块化:moudles
其中state和getters用来保存状态;mutations和actions用来改变状态;监听状态用Vue组件中的computer属性;module是用来组织是整个应用的状态管理代码,使状态划分模块,更易于管理。
mutations和actions的区别:mutations不应该用于异步修改状态,因为这样做的话,Vuex是无法知道修改了state.count的时机的,因为它是在异步回调里面指定的,因此Vuex无法在调试工具中打印出我们实际改变state的操作;actions中可以异步更新状态。
getter和state的关系类似于Vue组件data属性和计算属性的关系,getter根据state或者其他getter计算出另一个变量的值,当其依赖的数据变化的时候,它也会实时更新。
3.vue的基本原理?
当一个 Vue 实例创建时,Vue 会遍历 data 中的属性,用 Object.defineProperty(vue3.0 使用 proxy )将它们转为 getter/setter,getter将观察者添加到主题对象中,收集依赖;setter通知变更,给dom元素赋值。
4.v-model的作用是什么?
实现数据的双向绑定
5.数据双向绑定的原理?
1)双向绑定时通过数据的劫持发生改变。(先修改data中的数据)如果数据改变了,执行updata方法(更新视图),从而实现数据的双向绑定。
2)双向数据绑定的步骤: 第一步:实现一个数据监听器observer, 第二步:实现一个指令解析器compile 第三步:实现一个wat