1.谈谈你对vue的了解
vue的作者是尤雨溪,2013年受angular启发,开发出比angular更轻的seed框架,2014正式对外发布。
-vue是一套用于构建用户界面的渐进式javascript框架。
-渐进式可以理解为自底层向上逐层的应用,(从简单的应用递进到复杂应用)
-简单应用:只需要一个轻量级小巧的核心库
-复杂应用:可以引入各式各样的vue插件
-vue特点
-采用组件化模式,提高代码复用率、让代码更简洁。
-声明式编码,无需直接操作dom,提高开发效率。
2.数据双向绑定(数据代理)
-通过vm对象来代理data对象中的属性操作(读/写)
-更加方便的操作数据
-原理:通过object.defineProperty()把data对象中的所有属性添加到vm实例上,然后为每一个添加到vm实例上的属性,都指定一个getter和setter,在getter/getter内部去操作(读/写)data中对应的属性。
3.对mvvm的理解
是model-view-viewmodel的缩写,是一种结构模式(设计思想)
model是数据模型,用于对数据的定义和修改等操作。
view是ui视图层,用于渲染页面。
viewModel:负责监听model中数据的改变并控制属兔更新,处理用户交互操作。
修改View层,Model对应数据发生变化
Model数据变化,不需要查找DOM,直接更新View
4.修饰符
事件修饰符(可以连续使用)
-.prevent阻止默认行为
-.stop阻止冒泡
-.once事件触发一次
-.capture使用事件的捕获模式
-.self只有event.target是当前操作的元素才会触发事件
-.passive事件默认行为立即执行,无需等待事件回调执行完毕。
键盘修饰符keydown keyup
-enter回车
-delete删除/退格
-esc退出
-space空格
-tab换行
-up上
-down下
-left左
-right右
-vue未提供别名的按键,可以使用按键原始的key值去绑定,注意要转为kebab-case(短横线命名caps-lock)
-系统修饰键:ctrl、alt、shift、meta
-配合keyup使用:按下修饰键的同时再按下其他键,随后释放其他键,事件才会被触发
-配合keydown使用:正常触发事件。
-使用keyCode去指定具体按键
-Vue.config.keyCodes.自定义键名=键码,可以定制按键别名
5.计算属性与监听属性
计算属性:
-get、set属性,底层借助了object.defineproperty方法提供的getter和setter。
-当读取计算属性里的值时,get会被调用,初次读取值或者所依赖的数据发生改变时都会被调用。
-有缓存,只有所依赖的数据发生改变时缓存的值才会更新。
-当计算属性的值被直接修改时会执行set
监听属性
-当监视属性变化时,回调函数自动调用,进行相关操作。
-监听属性有两种写法:new Vue里传入watch配置或者通过vm.$watch()监听。
-有handler函数,其身上有旧值与新值(newValue,oldValue)
-没有缓存
-检测data里的属性,也可以监听计算属性里的值
-默认不检测对象内部值的改变,可配置deep:true开启深度监听
区别
-componted无法开启异步任务,watch可以开启异步任务
-componted有缓存机制,watch没有缓存机制
-componted可以完成的功能watch都可以完成,而watch完成的功能componted不一定能完成
-componted的计算结果受其依赖属性的影响,watch的改变可以影响依赖属性。