写点什么

前端开发 Vue 中的 v- 指令的使用

  • 2022 年 1 月 04 日
  • 本文字数:1868 字

    阅读完需:约 6 分钟

​前言


在前端 Vue.js 开发的时候,使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。所有 Vue.js 的模板都是合法的 HTML,前端培训所以能被遵循规范的浏览器和 HTML 解析器解析。开发者比较熟悉的 Vue.js 的数据绑定常用的方式就是使用“Mustache”语法 (双大括号) 的文本插值,Mustache 标签将会被替代为对应数据对象上 msg property 的值。无论何时何地,绑定的数据对象上 msg property 发生了改变,插值处的内容都会跟着更新改变,通过使用 v-once 指令也能执行一次性地插值,当数据改变时插值处的内容不会更新。


一、Vue.js 常用的 v-指令


1、v-html 指令


v-html 指令用于输出 html 代码的,具体使用如下所示:


   <div class="email-content">      <p v-html="templatePack"></p>  //templatePack是html代码路径    </div>
复制代码



2、v-text 指令


v-text 指令是用于输出文本的,具体使用如下所示:


      <thead>          <th class="table-header-th" v-for="(cell, colIndex) in header" :key="colIndex">            <span class="table-header" v-text="cell.value"></span>  //输出cell.value的值          </th>        </thead>
复制代码



3、v-once 指令


通过使用 v-once 指令,一次性地插值,当数据改变时,插值处的内容不会更新,具体使用如下所示:


<span v-once> {{ msg }}</span> //msg 的值不变


4、v-if 指令


v-if 指令是实现条件渲染,插入或者移除元素(true 插入, false 移除),具体使用如下图所示:


v-else 指令保证同级节点存在 v-if || v-else-if,搭配 v-if 使用的,必须紧跟在 v-if 或者 v-else-if 后面,否则不起作用,具体使用如下图所示:


注意:v-if 和 v-else 只会不能并存,只能存在其一。


v-else-if 指令是充当 v-if 的 else-if 块,可以链式的使用多次,可以在标签中更加方便的实现 switch 语句的功能。


5、v-show 指令


v-show 指令是用来隐藏或者显示元素的,具体使用如下所示:


<van-loading class="loading-bg" type="spinner" size="24px" v-show="httpLoading"/> //根据 httpLoading 的 bool 值来判断是否显示


6、v-on 指令


v-on 指令是用来进行事件绑定的, 可用 @来代替,具体使用如下所示:


  <div class="header-bg" @click="toInterviewResume"> //给div标签绑定点击事件,使用@来代替v-on
复制代码



7、v-for 指令


v-for 指令实现的是循环语法,也就是 for 循环的功能,具体使用如下所示:


8、v-bind 指令


v-bind 指令是用来实现属性绑定的,它可以简写,具体使用如下所示:


<img v-bind:src="imgSrc”>    //v-bind 未简写<img :src="imgSrc">      //v-bind 简写
复制代码


9、v-model 指令


v-model 指令是用来实现双向数据绑定的,具体使用如下所示:


二、Vue.js 不常用的 v-指令


1、v-pre 指令


v-pre 指令是用来不解析数据的,具体使用如下所示:


<span class="table-header" v-pre>{{hello world}}</span> //显示效果为:{{hello world}}


2、v-cloak 指令


v-cloak 指令是:vue 解析前,v-cloak 会存在于页面;vue 解析完成 ,v-cloak 消失。它能够解决插值表达式闪烁的问题,具体使用如下所示:


//css 样式[v-cloak]{


display:none;color:red;}....<span v-cloak>Loading…</span>


三、Vue.js 的自定义指令


除了上面的核心功能默认内置的指令,Vue.js 也允许注册自定义指令。在 Vue2.0 中,代码复用和抽象的主要形式是组件,但是有的情况下,仍然需要对普通 DOM 元素进行底层操作,这时候就会用到自定义指令。


1、自定义的 v-focus 指令


场景:当页面加载时,让输入框获得焦点。


只要在打开这个页面后还没点击过任何内容的时候,这个输入框就应当还是处于聚焦状态,这里使用 v-focus 指令来实现该需求,具体使用如下所示:


// 注册全局自定义指令 v-focusVue.directive('focus', {// 当被绑定的元素将要插入到 DOM 中时 inserted: function (el) {// 聚焦对应的元素 el.focus();}});//在输入框使用的地方使用上述自定义指令<input v-focus>


2、自定义的对象字面量指令


场景:如果指令需要有多个值,可传入一个 JavaScript 对象字面量,但是该指令函数能够接受所有合法的 JavaScript 表达式。具体使用如下所示:


<span v-demo="{ color: ‘red’, text: 'hello world!’ }"></span>Vue.directive('demo', function (el, binding) { //console.log(binding.value.color); // 输出结果“red”console.log(binding.value.text); //输出结果 "hello world!"});


最后


通过上面介绍的 v-指令的各种使用场景,在 Vue.js 开发中的使用就游刃有余了,这也是在开发过程中必用的功能,尤其是对于初级开发者来说,更应该掌握这种操作场景的使用,这里不再赘述。


原创作者: 三掌柜 666

用户头像

关注尚硅谷,轻松学IT 2021.11.23 加入

还未添加个人简介

评论

发布
暂无评论
前端开发Vue中的v-指令的使用