关于Vue的那点事之⑦

136 阅读2分钟

Vue 常用的指令以及作用

  • 1.v-model 多用于表单元素实现双向数据绑定(同 angular 中的 ng-model)
  • 2.v-for 格式: v-for="字段名 in(of) 数组 json" 循环数组或 json(同 angular 中的 ng-repeat),需要注意从 Vue2 开始取消了$index
  • 3.v-show 显示内容 (同 angular 中的 ng-show)
  • 4.v-hide 隐藏内容(同 angular 中的 ng-hide)
  • 5.v-if 显示与隐藏 (dom 元素的删除添加 同 angular 中的 ng-if 默认值为 false)
  • 6.v-else-if 必须和 v-if 连用
  • 7.v-else 必须和 v-if 连用 不能单独使用 否则报错 模板编译错误
  • 8.v-bind 动态绑定 作用: 及时对页面的数据进行更改
  • 9.v-on:click 给标签绑定函数,可以缩写为@,例如绑定一个点击函数 函数必须写在 methods里面
  • 10.v-text 解析文本
  • 11.v-html 解析 html 标签
  • 12.v-bind:class 三种绑定方法 1、对象型 '{red:isred}' 2、三元型 'isred?"red":"blue"'3、数组型 '[{red:"isred"},{blue:"isblue"}]'
  • 13.v-once 进入页面时 只渲染一次 不在进行渲染
  • 14.v-cloak 防止闪烁
  • 15.v-pre 把标签内部的元素原位输出

自定义指令(v-check、v-focus)的方法,以及它的钩子函数

全局定义指令:在 Vue 对象的 directive 方法里面有两个参数,一个是指令名称,另外一个是函数。组件内定义指令:directives

钩子函数:bind(绑定事件触发)、inserted(节点插入的时候触发)、update(组件内相关更新)

v-show 和 v-if 指令的共同点和不同点

相同点

v-show 和 v-if 都能控制元素的显示和隐藏

不同点

实现本质方法不同

v-show 本质就是通过设置 css 中的 display 设置为 none,控制隐藏

v-if 是动态的向 DOM 树内添加或者删除 DOM 元素

编译的区别

v-show 其实就是在控制 css

v-if 切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件

编译的条件

v-show 都会编译,初始值为 false,只是将 display 设为 none,但它也编译了

v-if 初始值为 false,就不会编译了

性能比较

v-show 只编译一次,后面其实就是控制 css,而 v-if 不停的销毁和创建,故 v-show 性能更好一点

注意点:因为 v-show 实际是操作 display:" "或者 none,当 css 本身有 display:none 时,v-show 无法让显示

总结(适用场景)

如果要频繁切换某节点时,使用 v-show(无论 true 或者 false初始都会进行渲染,此后通过 css 来控制显示隐藏,因此切换开销比较小,初始开销较大),如果不需要频繁切换某节点时,使用 v-if(因为懒加载,初始为 false时,不会渲染,但是因为它是通过添加和删除 dom 元素来控制显示和隐藏的,因此初始渲染开销较小,切换开销比较大)