一。 什么是MVVM模型?
1。M——model(纯js对象),V——View(dom页面),VM——ViewModel (vue实例。),核心就是通过dom listeners和data Bindings进行双向数据绑定。
二、什么是生命周期(钩子函数)?
是vue实例从创建——到虚拟dom产生挂载——到数据绑定监听数据变化——vue实例销毁的过程。
1.实例创建阶段
1. beforeCreat()实例创建前,初始化默认事件和默认声明周期。
2. created()实例创建完成,就可以访问data和methods中的数据(同时也是最早可以发送异步请求的阶段。)
2. 实例挂载阶段
1. beforeMount()实例挂载之前,看有没有el属性,没有的话通过vm.$mount来提供模板,有的话看有没有template属性。没有的话将el父html元素作为他的模板
2。mounted()实例挂载阶段,实例与模板绑定成功。可以访问dom元素,创建vm.$el来代替el进行模板编译。
3. 实例更新阶段
1 beforeUpdate 实例更新之前此时数据更改触发该生命周期 此时dom中的数据还未更新完成 dom元素内容还是原始数据 还没有编译到模板中
2 updated 实例更新完成
数据更改就会触发该生命周期 此时dom中的数据已经更新完成 新数据 编译到模板中
4。实例销毁阶段
1 beforeDestroy 实例销毁之前。实例销毁会触发该生命周期 依旧可以访问vue实例中的数据模型和方法
2 destroy 实例销毁完成
销毁了实例的监听器 子组件 和事件监听
模板语法:
1. 插值语法,直接{{msg}}
2。一次性插值 <div v-once></div>——————后续,无法更改
3. v-html 识别代码片段。
4. v-bind 给属性绑定内容。——:
5。绑定事件v-onclick——@
6、JS表达式。
三、V-if和v-show有什么区别?
v-if是惰性的,如果一开始条件不满足,元素就不会被渲染
直到条件满足才开始渲染元素
对应的是子组件和监听器的重新创建和销毁
v-show 无论条件满不满足都会渲染元素 通过css属性显示或者隐藏
元素 满足条件显示元素 件不满足条隐藏元素 对应display:none
v-if条件很少改变 v-show频繁切换
v-if 对应的是元素的删除和添加 v-show对应的元素的显示和隐藏