1. Vue 有哪些生命周期钩子函数
- beforeCreate、created、beforeMount、mounted、beforeUpdata、updated、beforeDestroy、destroyed
- 在mounted钩子中请求数据
钩子函数
生命周期图解
2. watch 和 computed 和 methods 区别是什么
- computed 和 methods 相比,最大区别是 computed 有缓存:如果 computed 属性依赖的属性没有变化,那么 computed 属性就不会重新计算。methods 则是看到一次计算一次。
- watch 和 computed 相比,computed 是计算出一个属性(废话),而 watch 则可能是做别的事情(如上报数据)
- 区别
3. Vue 如何实现组件间通信
- 父子通信: 使用 Prop 传递数据、使用 v-on 绑定自定义事件
- 爷孙通信:使用两次 v-on 通过两对父子通信,爷爸之间父子通信,爸儿之间父子通信
- 任意组件:使用 eventBus = new Vue() 来通信,
eventBus.$on
和eventBus.$emit
是主要API;使用Vuex通信
4. Vuex的作用
- Vuex
- Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式
- State/Getter/Mutation/Action/Module
5. Vue 的双向绑定, Vue.set 是做什么用的?
- 深入响应式原理
- 使用 Object.defineProperty 把这些属性全部转为 getter/setter
- Vue 不能检测到对象属性的添加或删除,解决方法是手动调用 Vue.set 或者 this.$set
6. VueRouter 路由是什么?
- Vue Router 是 Vue.js 官方的路由管理器。
- History 模式/导航守卫/路由懒加载
- 常用 API:
router-link/router-view/this.$router.push/this.$router.replace/this.$route.params
this.$router.push('/user-admin')
this.$route.params
7. 路由守卫是什么?
8、vue修改对象的属性值后页面不重新渲染的解决办法
- 情景:数据层次太多,没有触发render函数进行自动更新,需手动调用
- 解决办法:
this.$forceUpdate();
网友评论