Vue.js学习笔记(贰)

98 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 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){
        }) 

必须先导入才能使用,使用getpost即可发送对应的请求,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实例对象上的属性,都指定一个gettersettergetter / setter内部操作 data 中对应的属性

image.png

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 去指定具体的按键