Vue2系列-基础小结

137 阅读3分钟

面试了许多求职者,很多求职者只知其然,而不知所以然,写此文章为广大前端小伙伴指引迷津。纯干货!纯干货!纯干货!

目录

基础小结

插值指令
  • Mustache: {{}}语法, 可以写变量/逻辑表达式/计算值...
  • v-once : 元素只渲染一次,不会随着数据的改变而改变
  • v-html="" : 解析数据中的html代码,渲染到页面中
  • v-text="msg": 写在属性当中, 将数据显示在界面中
  • v-pre: 原文输出, 显示原本的Mustache语法
  • v-cloak : 一般配合CSS规则一起使用, 够解决插值表达式闪烁的问题
绑定属性
  • 作用:动态绑定属性
  • 缩写: :
  • eg: :class:style
事件监听
  • 作用: 绑定事件监听器
  • 缩写: @
  • eg: @click
  • 事件修饰符如下: 饰符 | 作用 | | ----------------------- | ------------------------------------- | | .stop | 阻止冒泡。本质是调用 event.stopPropagation() | | .prevent | 阻止默认事件行为 本质是调用 event.preventDefault() | | .{keyCode | keyAlias } | 当事件是从特定键触发时才触发回调 | | .once | 事件只触发一次 |
条件渲染指令
  • v-if 和 v-show对比
    • v-if 当条件为false时,压根不会有对应的元素在DOM中
    • v-show 当条件为false时, 仅仅是将元素的 display 属性设置 none 而已
  • 开发中如何选择呢?
    • 当需要在显示与隐藏之间切换很频繁时,使用v-show
    • 当只有一次切换时,通过使用v-if
循环遍历指令

v-for遍历数组

  • 作用:根据数组中的元素遍历指定模板内容生成内容。
  • 语法: v-for="(item, index) in items" v-for遍历对象
  • 作用: 遍历对象
  • 语法: v-for="(value, key, index) in items" Vue中Key属性?
  • Diff算法就可以正确的识别此节点
  • 找到正确的位置区插入新的节点
  • key的作用主要是为了高效的更新虚拟DOM
表单绑定

区别:

  • v-bind: 只能实现数据的单向绑定, 从M自动绑定到v。
  • v-model: 只有v-model才能实现双向数据绑定。
  • v-model其实是一个语法糖, 他背后本质是包含两个操作
    • v-bind绑定一个value属性
    • v-on指令绑定当前元素的input事件 v-model的修饰符 | 修饰符 | 作用 | | --------- | -------------------------------- | | .lazy | 当表单失去焦点或按下回车时,data中的数据才会更新 | | .number | 输入的内容转换为number数据类型 | | .trim | 过滤内容的两侧空格
自定义指令

全局指令:全局使用。比如权限码,埋点等

局部指令:只能在当前组件里面使用(当全局指令和局部指令同名时以局部指令为准)。比如获取焦点等。

过滤器

全局管道和局部管道,比如字母转换,单位转换等。

  • 作用文本格式化/处理
  • 过滤器不改变真正的data,而只是改变渲染的结果,并返回过滤后的版本
  • 它接收两个参数过滤器的名称过滤器函数
<!-- 管道符前面的price: 要把price这段文本进行过滤 -->
<!-- 管道符后面的showPrice: 是通过showPrice这个过滤器来进行操作 -->
<td>{{price | showPrice}}</td>
<script>
const app = new Vue({
  filters: {
    showPrice(price) {
      return '¥' + price.toFixed(2);
    }
  }
})
</script>
组件样式私有
<stype scoped>
  h2 {} // 样式只会在当前组件内生效
</style>
动态组件
<component :is="comName"></component> //comName是变量,值为需要切换的几个组件名
插槽
  • 使用: 对引用的组件中传入自定义标签, 是标签不是变量, 变量直接传过来就好了,就不需要插槽了, 但是有时候我们封装的组件中,需要添加一段自定义模块,可以是列表,可以是一句话,这时就需要用到插槽。
  • 类型: 匿名插槽具名插槽

小白也是新手面试官,欢迎领导莅临指导工作,提出建议,小白不胜感激,不喜勿喷,点赞收藏随机送程序媛小姐姐一枚哦!!!