1.vue的生命周期
beforeCreate>created>beforeMount>mounted>beforeUpdate>updated>beforeDestroy>destroyed
beforeCreate:data和methods中的数据还没有初始化
created: 在created中,data和methods都已经初始化好
beforeMount: 此时模板已经在内存中编辑完成了,但尚未把模板渲染到页面中
mounted: 表示内存中的模板已经真实的挂载带页面中去了,用户可以看到渲染好的页面,mounted是实例创建期间的最后一个生命周期函数,当执行完mounted后,表示实例别完全创建好了, 如果要操作元素的DOM操作,最早在mounted中操作
beforeUpdate:表示 我们的界面还没有更新,但是数据已经更新了
updated: 执行时,页面中的数据与data中的数据已经同步了
beforeDestroy:当执行该函数时,Vue实例已经从执行阶段进入了销毁阶段, 但是实例上所有的data和methods、过滤器、指令都还可用,此时还没有真正的销毁
destroyed: 当执行了该函数时,组件已经完全被销毁,组件中所有的数据、方法、指令、过滤器都已经不可用了
2.vuex五个属性
state, getters, mutations, actions, modules
state – 存放状态
getters – state的计算属性
mutations – 更改状态的逻辑,同步操作(mutation必须是同步函数,不能是异步的)
actions – 提交mutation,异步操作
mudules – 将store模块化
3.在vue中定义a是一个空对象,然后在使用时this.a.b=“xxxx”,vue渲染能渲染出b的值吗?
可以
4.父子组渲染过程
加载渲染过程
父组件 beforeCreate
父组件 created
父组件 beforeMount
子组件 beforeCreate
子组件 created
子组件 beforeMount
子组件 mounted
父组件 mounted
更新过程
父组件 beforeUpdate
子组件 beforeUpdate
子组件 updated
父组件 updated
销毁过程
父组件 beforeDestroy
子组件 beforeDestroy
子组件 destroyed
父组件 destroyed
5.vue单向数据流
6.子组件操作父组件,父组件操作子组件
7.Vue2.0响应式原理
Vue在初始化数据时,会使用Object.defineProperty重新定义data中的所有属性,当页面使用相对应的属性时,首先会进行依赖收集(收集当前组件的watcher),如果属性发生变化时会通知相关依赖进行更新操作(发布订阅)
8.Vue3.0响应式原理
Vue3.0使用Proxy替代Object.defineProperty。Proxy可以直接监听对象和数组的变化