当前位置: 首页 > news >正文

python测试开发---vue的常见指令

在 Vue.js 中,指令是用于在模板中绑定数据和 DOM 元素之间关系的特殊属性。指令通常以 v- 开头,后面跟上指令的名字。了解和使用这些指令是掌握 Vue.js 的关键之一。下面是一些 Vue.js 中常见的指令及其用法。

1. v-bind

  • 作用:动态地绑定 HTML 属性或特性。
  • 简写:
  • 用法
    <img v-bind:src="imageUrl">
    <!-- 简写 -->
    <img :src="imageUrl">
    
  • 示例
    <a :href="url">链接</a>
    

2. v-model

  • 作用:实现双向数据绑定,常用于表单控件(如输入框、复选框、单选按钮等)。
  • 用法
    <input v-model="message" placeholder="请输入内容">
    <p>{{ message }}</p>
    
  • 以上示例实现了输入框内容的实时显示。

3. v-if

  • 作用:条件渲染,只有当条件为 true 时,元素才会渲染。

  • 用法

    <p v-if="seen">这段文字会被条件渲染</p>
    
  • 搭配使用

    • v-else:用于处理 v-iffalse 的情况。
    • v-else-if:用于处理多个条件分支。
    <p v-if="type === 'A'">A 类内容</p>
    <p v-else-if="type === 'B'">B 类内容</p>
    <p v-else>其他内容</p>
    

4. v-show

  • 作用:通过切换元素的 display 样式实现显示和隐藏。
  • v-if 的区别v-if 是真正的条件渲染,会添加或删除 DOM 元素;v-show 只是切换元素的可见性,元素始终存在于 DOM 中。
  • 用法
    <p v-show="isVisible">这个元素通过 v-show 控制显示和隐藏</p>
    

5. v-for

  • 作用:用于循环渲染一个列表。
  • 用法
    <ul><li v-for="(item, index) in items" :key="index">{{ item }}</li>
    </ul>
    
  • 注意事项:循环元素时,建议添加 :key 属性,确保每个元素有唯一标识,以帮助 Vue 追踪元素的变化。

6. v-on

  • 作用:用于绑定事件监听器。

  • 简写@

  • 用法

    <button v-on:click="handleClick">点击我</button>
    <!-- 简写 -->
    <button @click="handleClick">点击我</button>
    
  • 事件修饰符

    • .stop:阻止事件冒泡。
    • .prevent:阻止默认事件。
    • .capture:使用事件捕获模式。
    • .self:只在事件从自身元素触发时才触发回调。
    • .once:事件只触发一次。
    <button @click.stop="handleClick">阻止冒泡</button>
    <form @submit.prevent="onSubmit">阻止表单默认提交</form>
    

7. v-cloak

  • 作用:用于解决页面渲染闪烁的问题,在 Vue 实例准备好并编译完毕后移除该指令。
  • 用法
    <div v-cloak>{{ message }}
    </div>
    
  • 用法注意:需要在 CSS 中添加 [v-cloak] { display: none; } 样式。

8. v-text

  • 作用:用于更新元素的 textContent,类似于插值 {{}}
  • 用法
    <span v-text="message"></span>
    
  • 区别:与插值不同的是,v-text 会替换整个元素的内容。

9. v-html

  • 作用:用于输出 HTML 内容。注意:使用时需要小心,可能会导致 XSS 攻击。
  • 用法
    <div v-html="htmlContent"></div>
    

10. v-pre

  • 作用:跳过这个元素和它的子元素的编译过程。用于直接显示原始的 Mustache 标签。
  • 用法
    <div v-pre>{{ rawMustache }}</div>
    

11. v-once

  • 作用:只渲染元素和组件一次。以静态内容渲染,一旦被渲染后,Vue 不会再次更新该元素。
  • 用法
    <p v-once>{{ message }}</p>
    

除了上面提到的常见指令,Vue.js 还有一些指令可以进一步优化和增强应用的开发。以下是一些稍微高级一些或较少见的指令,但在特定场景下非常有用。

12. v-slot

  • 作用:用于定义组件插槽(slots),帮助在父组件中传递内容到子组件的特定位置。
  • 用法
    <!-- 父组件 -->
    <custom-component><template v-slot:default><p>这是默认插槽的内容</p></template><template v-slot:header><h1>这是头部插槽的内容</h1></template>
    </custom-component>
    
  • 简写形式#header 相当于 v-slot:header

13. v-bind.sync

  • 作用:用于同步父组件和子组件之间的 prop 值,可以实现双向绑定。
  • 用法
    <child-component :value.sync="parentValue"></child-component>
    
  • 等效于
    <child-component :value="parentValue" @update:value="val => parentValue = val"></child-component>
    

14. v-on:custom-event

  • 作用:监听自定义事件,这是通过 $emit 在子组件中触发的。
  • 用法
    <child-component @custom-event="handleCustomEvent"></child-component>
    

15. v-bind:is

  • 作用:用于动态地渲染不同的组件或 HTML 元素。
  • 用法
    <component v-bind:is="currentComponent"></component>
    
  • 示例
    <div v-bind:is="isButton ? 'button' : 'a'">{{ text }}</div>
    

16. v-once

  • 作用:将元素或组件仅渲染一次,之后不再更新。适用于不需要响应变化的静态内容。
  • 用法
    <p v-once>{{ message }}</p>
    

17. v-memo

  • 作用:用于缓存部分模板的渲染输出,提升性能。配合 v-memo 使用的表达式为其依赖的变化条件。
  • 用法
    <div v-memo="[user.id]"><p>{{ user.name }}</p>
    </div>
    

18. v-bind.classv-bind.style

  • 作用:动态绑定 class 和内联样式。
  • 用法
    • 动态 class
      <div v-bind:class="{ active: isActive }"></div>
      <div :class="[classA, classB]"></div>
      
    • 动态 style
      <div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
      

19. v-bind:key

  • 作用:为渲染的元素或组件设置唯一标识,帮助 Vue 在渲染过程中跟踪和复用元素或组件。
  • 用法
    <li v-for="item in items" :key="item.id">{{ item.name }}</li>
    

20. v-bind:ref

  • 作用:在模板中为元素或子组件注册引用,可以在 JavaScript 中访问这些引用。
  • 用法
    <input v-bind:ref="inputRef">
    
  • 访问引用
    this.$refs.inputRef.focus();
    

21. v-bind:slot-scope

  • 作用:在 2.x 版本中,用于在插槽上定义作用域。3.x 版本改为 v-slot
  • 用法
    <slot :user="user"></slot>
    

22. 自定义指令(v-directive

  • 作用:Vue 允许你定义自己的指令来扩展默认指令的功能。
  • 用法
    Vue.directive('focus', {inserted: function (el) {el.focus();}
    });
    
  • 在模板中使用
    <input v-focus>
    

23. v-bind:[attribute] 动态属性

  • 作用:允许你根据表达式的值动态绑定 HTML 属性。
  • 用法
    <button v-bind:[dynamicAttr]="value">{{ text }}</button>
    

24. v-on:[event] 动态事件

  • 作用:允许你根据表达式的值动态绑定事件。
  • 用法
    <button v-on:[dynamicEvent]="handler">{{ text }}</button>
    

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 66、Python之函数高级:一个装饰器不够用,可以多装饰器buffer叠加
  • 存储虚拟化
  • QT QPrinter无弹窗后台打印
  • 金融壹账通:智能面审解决方案“大显身手”
  • 【未解决】everything软件 中文文件夹 查找不到
  • Java 学习中使用文件、网络连接等资源时,未正确关闭资源,导致资源泄漏应该怎么办?
  • 实现C程序绑定TCP端口
  • 前端封装组件可视化库
  • HTTP 响应状态码详解
  • fileinput pdf编辑初始化预览
  • 【西电电装实习】5. 无人机模块及作用、上位机的操作
  • 【Qt网络编程基础】Tcp服务器和客户端(只支持一对一)
  • Gitea Action注册runner
  • NX—UI界面生成的文件在VS上的设置
  • BT、磁力、种子、直链、PT之间的关系
  • .pyc 想到的一些问题
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • android图片蒙层
  • CentOS6 编译安装 redis-3.2.3
  • Mac转Windows的拯救指南
  • mongo索引构建
  • node.js
  • PhantomJS 安装
  • 看域名解析域名安全对SEO的影响
  • 网页视频流m3u8/ts视频下载
  • 微服务入门【系列视频课程】
  • 写给高年级小学生看的《Bash 指南》
  • 用element的upload组件实现多图片上传和压缩
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • #QT(一种朴素的计算器实现方法)
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (补充)IDEA项目结构
  • (分布式缓存)Redis哨兵
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (一)springboot2.7.6集成activit5.23.0之集成引擎
  • (转)mysql使用Navicat 导出和导入数据库
  • (转载)PyTorch代码规范最佳实践和样式指南
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .net Signalr 使用笔记
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .project文件
  • /etc/sudoers (root权限管理)
  • [ vulhub漏洞复现篇 ] Celery <4.0 Redis未授权访问+Pickle反序列化利用
  • [20150707]外部表与rowid.txt
  • [autojs]autojs开关按钮的简单使用
  • [BetterExplained]书写是为了更好的思考(转载)
  • [BZOJ 4129]Haruna’s Breakfast(树上带修改莫队)