携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第22天点击查看活动详情。
MVVM模型
1、M:模型,Model:对应data 中的数据
2、V:视图,View:模版
3、VM:视图模型,ViewModel:Vue 实例对象
Vue.js框架
- data中所有属性,最后都出现在 VM 身上。
- VM 身上所有属性,以及Vue 原型上所有属性,在Vue 模版中都可以直接使用
- 组件化 模式。提高代码复用率,让代码更好维护
- 声明式 编码,无需直接操作DOM
- 虚拟DOM + 优秀的 diff 算法
axios网络请求库
axios 功能强大的网络请求库:
- Axios是一个基于Promise的HTTP库,可以用于浏览器和 Node.js
- 特性: 支持promise API,自动转换JSON 数据,转换请求数据和响应数据,能拦截请求和响应
- Axios 非常适合前后端数据交互,同时支持浏览器和Node 端使用
axios.get(地址?key=value&key2=value2).then(function(response){
},function(err){
})
axios.post(地址,{key:value,key2:value2}).then(function(response){
},function(err){
})
必须先导入才能使用,使用get或post即可发送对应的请求,then方法中的回调函数会在请求成功或失败时触发,通过回调函数的形参可以获取响应内容或错误信。
axios回调函数中的this已经改变,无法访问data中的数据,把this保存起来,回调函数中直接使用保存的this即可,改变了数据来源。
- 服务器返回数据比较复杂时,获取的时候需要注意层级结构, 通过审查元素快速定位到需要操纵的元素
JS表达式 和 JS 代码(语句)
1、表达式:一个表达式会生成一个值,可以放在任何一个IE需要值的地方
2、JS代码:①· if() ②· for()
双向绑定原理:利用Object.defineProperty()方法重新定义了对象获取属性值get和设置属性值set。
数据代理
Object.defineProperty()
-
enumerable:true控制属性是否可以枚举,默认是 false -
writable:true控制属性是否可以被修改,默认是 false -
configurable:true控制属性是否可以被删除,默认是 false 读取属性,get函数的(getter) 就会被调用,返回值就是读取的属性值 修改属性,set函数的(setter)就会被调用,且会收到修改的具体值
数据代理:通过一个VM 对象代理data 对象中属性的操作,读/写 更加方便的操作。
data 中的数据 通过object.defineProperty()把data对象中所有属性添加到Vue 实例对象上,为每一个添加到VM实例对象上的属性,都指定一个getter和setter在getter / setter内部操作 data 中对应的属性
Vue 中的事件修饰符
修饰符可以连续写
1、prevent:阻止默认事件
2、stop:阻事件冒泡
3、once:事件只触发一次
4、capture:使用事件的捕获模式
5、self:只有 event. target 是操作当前元素时才触发事件
6、passive:事件的默认行为立即执行,无需等待事件执行完毕时 scroll 监听滚动条滚动事件;wheel 监听滚轮滚动事件
Vue 中常用的按键别名
键盘事件也可以连续写
回车:enter
删除:delete
退出:esc
空格:space
换行:tab 必须和keydown搭配使用
系统修饰键ctrl、alt、shift、meta 配合keyup使用:按下修饰键的同时,再按下其他键,随后释放其他键,事件才触发 配合keydown 使用:正常触发事件
上:up
下:down
左:left
右:right
Vue 中未提供别名的按键,可以使用按键原始的 key 值去绑定 也可以使用 keyCode 去指定具体的按键