• Vue 指令整理


    Vue 的指令你知道多少?

    1、v-text

    更新元素的 textContent(不会解析h5标签)。

    示例:

    <span v-text="msg">span>
    
    <span>{{msg}}span>
    
    • 1
    • 2
    • 3

    2、v-html

    更新元素的 innerHTML。v-html 内的标签属性将会被解析,但在单文件组件里,scoped 的样式将不会应用,因为那部分 HTML 没有被 Vue 的模板编译器处理。

    在网站上动态渲染任意 HTML 是非常危险的,因为容易导致 XSS 攻击。只在可信内容上使用 v-html,永不用在用户提交的内容上。

    示例:

    
    <div v-html="html">div>
    
    <div>
    	<h3>内容h3>
    div>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3、v-show

    条件渲染,根据条件显示或隐藏元素(切换元素的 display CSS property)。可配合在条件变化时该指令触发过渡效果。

    示例:

    <div v-show="isShow">当isShow表达式为真时我显示div>
    
    • 1

    4、v-if

    条件渲染,根据条件插入或移除元素,可配合在条件变化时该指令触发过渡效果。

    示例:

    <div v-if="isShow">当isShow表达式为真时我会被渲染div>
    
    • 1

    5、v-else-if and v-else

    v-else-if 和 v-else 都是用来配合 v-if 做条件渲染所以就放一起讲,他们的关系就和js中的 if、else if、else 差不多。

    v-else-if 的前一兄弟元素必须有 v-if 或 v-else-if。
    v-else 的前一兄弟元素必须有 v-if 或 v-else-if。

    示例:

    <div v-if="type === 'A'">
      A
    div>
    <div v-else-if="type === 'B'">
      B
    div>
    <div v-else-if="type === 'C'">
      C
    div>
    <div v-else>
      Not A/B/C
    div>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    6、v-for

    基于源数据多次渲染元素或模板块。在开发中一般用于遍历数组或对象。

    示例:

    
    <div v-for="(item, index) in items">
      {{ item }}
    div>
    
    
    <div v-for="(item, key, index) in items">
      {{ item.xxx }}
    div>
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在vue2,当和 v-if 一起使用时,v-for 的优先级比 v-if 更高,所以会造成 v-for 每一项都进行 if 判断,影响性能。

    7、v-on

    绑定事件监听器。可缩写为 @,在使用时可以配合修饰符

    示例:

    
    <button v-on:click="handleClick">button>
    
    
    <button @[event]="handleClick">button>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    8、v-bind

    属性绑定 或 父组件 props传值(动态地绑定一个或多个 attribute,或一个组件 prop 到表达式)。可缩写为 :

    示例:

    
    <img :src="imageSrc">
    
    
    <button :[key]="value">button>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    9、v-model

    在表单控件或者组件上创建双向绑定。
    v-model可用修饰符:
    (1) .lazy
    v-model默认在input时同步数据,可通过添加 lazy修饰符,转为在change事件同步

    (2) .number
    自动将输入值转为数值类型,如果这个值无法被 parseFloat() 解析,则会返回原始的值。

    (3) .trim
    自动过滤用户输入的首尾空白字符

    示例:

    
    <input v-model.lazy="inputValue" />
    
    • 1
    • 2

    10、v-slot

    提供具名插槽或需要接收 prop 的插槽。可缩写为#

    更多的可以去看 vue 插槽的相关知识。

    11、v-pre

    跳过这个元素和它的子元素的编译过程。可以用来显示原始 Mustache 标签。跳过大量没有指令的节点会加快编译。

    示例:

    <span v-pre>{{ this will not be compiled }}span>
    { this will not be compiled }}
     -->
    
    • 1
    • 2
    • 3
    • 4

    12、v-cloak

    这个指令保持在元素上直到关联实例结束编译。可用来指定该元素在实例结束编译前的样式。一般和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕。

    示例:

    [v-cloak] {
      display: none;
    }
    
    • 1
    • 2
    • 3
    <div v-cloak>
      {{ message }}
    div>
    
    • 1
    • 2
    • 3

    该元素将不会显示,直到编译结束。

    13、v-once

    只渲染元素和组件一次。随后的重新渲染,元素/组件及其所有的子节点将被视为静态内容并跳过。这可以用于优化更新性能。

    示例:

    <span v-once>This will never change: {{msg}}span>
    
    • 1

    再首次渲染完成后,修改msg不会更新span内容

  • 相关阅读:
    【地图之vue-baidu-map】点击获取坐标(点Marker)、坐标集(多边形polygon)
    1536_AURIX_TriCore内核架构_Trap
    (原创)[C#] GDI+ 之鼠标交互:原理、示例、一步步深入、性能优化
    前端因不会响应式而毕业了?怎么将页面变得像路飞一样,一套代码兼容多个终端。
    自动驾驶轨迹规划之碰撞检测(四)
    2022.5.15-参加北京青少年程序设计展示活动海淀区赛(失误了,三等奖)
    Go语言excelize包-01-入门示例、工作簿(创建、打开、保存、关闭、默认字体)、文件Writer
    每天一个知识点 - 如何快速熟悉后端项目
    Scratch软件编程等级考试三级——20200620
    人大金仓分析型数据库使用之创建和管理表空间
  • 原文地址:https://blog.csdn.net/weixin_44646763/article/details/126280455