前言

Vue官网一共有提供了14个指令,分别如下

  • v-text
  • v-html
  • v-show
  • v-if ☆☆☆
  • v-else ☆☆☆
  • v-else-if ☆☆☆
  • v-for ☆☆☆
  • v-on ☆☆☆
  • v-bind ☆☆☆
  • v-model ☆☆☆
  • v-slot
  • v-pre
  • v-cloak
  • v-once

注意:☆代表重要常用的

v-text(v-指令名="变量",变量需要data提供数值)

<p v-text="info"></p>
<p v-text="'abc' + info"></p>
<script>
new Vue({
el: '#app',
data: {
info: 'a'
}
})
</script>

v-text="info"渲染页面结果为a,因为info是个变量,就直接展示变量所对应的值

v-text="'abc' + info"渲染页面结果为abca,当你想用字符串和变量拼接时,可以在字符串上增加单引号,这样程序就认为你这个是个字符串,字符串+info变量最后的结果就是字符串abca

v-html(可以解析html语法)

有时候我们的Vue对象中,或者是后台返回给我们一个段原生的html代码,我们需要渲染出来,那么如果直接通过{{}}渲染,会把这个html代码当做字符串。这时候我们就可以通过v-html指令来实现。示例代码如下:

<p v-html="'<b>ok</b>'"></p>
<p v-text="'<b>ok</b>'"></p>

以上两行代码除了用的vue指令不一样以外,没有任何区别,让我们先展示结果吧

ok
<b>ok</b>

v-html可以解析html的标签,而text传的是字符串,不用管字符串里面具体的内容是什么,统一都直接展示出原来的字符

v-once(只渲染元素和组件一次)

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

<input type="text" v-model="msg" v-once>  // 只渲染一次
<p v-once>{{ msg }}</p>

v-cloak(防止页面闪烁)

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

v-pre(了解)

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

<div id="app">
<span v-pre>{{message}}</span>
</div>
<script>
const app = new Vue({
el: "#app",
data: {
message: "hello"
}
})
</script>

正常来讲我们会通过编译最后在网页上显示hello,但是使用了v-pre指令后,就会跳过编译,直接展示原始的标签内容也就是{{message}}

v-bind

绑定属性

如果我们想要在html元素的属性上绑定我们Vue对象中的变量,那么需要通过v-bind来实现。

<div id="app">
<a v-bind:href="baidu">百度</a>
<img :src="imgSrc" alt="">
</div>
<script>
const app = new Vue({
el: "#app",
data: {
message: "hello",
baidu: "https://www.baidu.com",
imgSrc: "https://www.baidu.com/img/pc_a91909218349e60ed8f6f6f226c30e5f.gif"
}
})
</script>

我们只需要在绑定的属性前面添加v-bind:即可,当然我们也可以使用缩写:,直接写冒号即可

绑定Class

绑定Class有2种方式,一种通过数组绑定,一种通过对象绑定

1.通过对象的方式来实现:

<div id="app">
<p v-bind:class="{color:isColor}">你好,世界</p>
</div>
<script>
const app = new Vue({
el: "#app",
data: {
isColor: true
}
})
</script>
<style>
.color{
color: blue;
}
</style>

对象的方式即像上面的代码{color:isColor}keycolorvalueisColor,当value的值为true则渲染,为false则不渲染

 

2.通过数组的方式来实现:

<div id="app">
<p :class="[classname1, classname2]">{{message}}</p>
</div>
<script>
const app = new Vue({
el: "#app",
data: {
message: "hello",
classname1: "pcolor",
classname2: "fontSize"
},
})
</script>
<style>
.pcolor{
color: red;
}
.fontSize{
font-size: 30px;
}
</style>

class需要绑定2个属性时,可以使用数组的方式

最新文章

  1. python常用工具小函数-字符类型转换
  2. C#中的斜变性和逆变性的详解
  3. LINQ to Entities 和LINQ to Objects 的区别
  4. MVC 自定义IModelBinder实现json参数转Dictionary&lt;string, string&gt;
  5. systemd在各个linux发行版的普及
  6. (翻译)理解Java当中的回调机制
  7. [kuangbin带你飞]专题七 线段树
  8. ASP.NET MVC 学习3、Controller左手从Model获取数据,右手传递到View页面
  9. TYVJ 1066 合并果子【优先队列】
  10. centos6.5 mysql配置整理
  11. ant+svn+tomcat实现项目自动部署
  12. 要将PYTHON应用于工作啦
  13. icinga 被动模式 nsca 安装
  14. noip2015运输计划
  15. 101个linq例子
  16. url路径去掉两个opencms
  17. web前端研发工程师编程能力成长之路
  18. editplus注册码生成
  19. C#特性之数据类型
  20. ThinkPHP 框架出现安全隐患 ,导致网站被持续攻击一周

热门文章

  1. JavaWeb——MySQL多表
  2. JavaSE全部学习笔记——集合
  3. Mac OSX系统homebrew update Fetching failed问题解决方案
  4. 如何提高CRM系统使用率?
  5. Linux VMware Tools详解
  6. [bug] IDEA springboot项目 访问静态资源 html页面 报404
  7. Python 送你一棵圣诞树
  8. curl -O http://www.linux.com/hello.sh
  9. Alien 魔法:RPM 和 DEB 互转
  10. [转发]PotPlayer 无损截取视频片段