- Vue的作者尤溪水惩治为渐进式框架
选择Vue
- Vue遵循建进增量的设计原则,其核心库专注于用户界面,现有项目更方便集成Vue
- 可以构建小型或者复杂的大型页面应用
- 易于上手
- 遵循MVVM原则
Vue
常见标签
- v-on绑定事件,如实现按钮单击事件
- v-bind 绑定属性
- v-for显示列表
- v-if条件判断
钩子函数
- bind-只调用一次,指令第一次绑定到元素时调用。
- insert-被绑定元素插入父节点时调用。
- update-所在组件的 VNode 更新时调用,但是可能发生在其子元素的 VNode 更新之前
- componentUpdated-所在组件的 VNode 及其子元素的 VNode 全部更新时调用。
- unbind-只调用一次,指令与元素解绑时调用
常用属性
- watch 监听props或本组件的值
- computed 类似于过滤器,对绑定到view的数据进行处理。不能与data中定义的变量重名,具有缓存性,页面重新渲染值不变化,计算属性会立即返回之前的计算结果,而不必再次执行函数
什么是mvvm
- mvvm是一种设计思想,m->model 数据层,v->view 视图层,vm->viewmodel 控制层,自动更新,渲染视图,双向绑定
- 实现了修改数据和模板自动渲染,解放了开发者,只需要关注View和Model,不用手动的操作DOM,效率和性能提高,低耦合度,独立开发,可复用性高
mvvm和mvc的区别
- mvvm用vm替换了c,c是控制层单项循环的,需要手动渲染,视图渲染在model层
- mvvm控制层为vm,实现数据的双向绑定,数据改变自动渲染视图
Vue优点
- 低耦合
视图(view)可以独立于model变化和修改,一个viewmodel 可以绑定到不同的view上,当view变化的时候model可以不变,当model变化的时候,view也可以不变 - 可重用性
你可以放一些视图逻辑放在viewModel里面,让很多view共用,即实现组件化 - 独立开发
专注于view 和model 层 - 数据驱动
通过数据变化直接影响bom展示,避免dom操作
谈谈你对vue的理解
Vue生命周期
- beforeCreate / created
- beforeMount / mounted
- beforeUpdate / updated
- beforeDestroy /destoryed
- activated
- deactivated
- errorcaptrued
组件间通信
- 父组件-> 子组件 props
- 子组件-> 父组件 emit(event), 父组件on(event)
路由之间跳转
-
声明式,标签跳转
< router-link to=’’> -
编程式,js跳转
this.$router.push/replace -
懒加载(按需加载路由)
const app = ()=>import(’./app.vue’)
vue的双向绑定原理
采用数据劫持结合发布者-订阅者模式,通过Object.defineProperty()来劫持给个属性的setter和getter,在数据变化时,向订阅者发布消息,触发相应的回调函数更新
vuex是什么?哪些场景使用它
vuex是vue的状态管理器,作为vue的一个插件,当有数据需要大量交互,或者大多组件需要共享时