Vue实战前必须掌握的10个命令

###1. v-text 命令
v-text 命令用于更新标签包含的文本,它的作用跟双大括号的效果一样。我们看看它的用法:

1
2
3
4
5
6
7
8
9
10
11
12
<div id="app">
<p v-text="msg"></p>
</div>
<script>
let app = new Vue({
el:"#app",
data:{
msg:'hello,vue'
}
});
</script>

我们给

标签加上了命令 v-text ,它的值就是我们data数据中的msg,就这么简单,最后我们来看看渲染结果:
v-text

###2. v-html 命令
它帮助我们绑定一些包含html代码的数据在视图上,比如:“hello,vue”,这个字符串包含了标签,要想不被当作普通的字符串渲染出来,就得用 v-html 命令。

1
2
3
4
5
6
7
8
9
10
11
12
<div id="app">
<p v-html="msg"></p>
</div>
<script>
let app = new Vue({
el:"#app",
data:{
msg:'<b>hello,vue</b>'
}
});
</script>

还是上面的代码,我们把 v-text 命令换成 v-html 命令,msg的值变成了含有html代码的:“hello vue”,我们看看渲染效果:
v-text
就这样,标签被成功解析并渲染出来,视图上的文本也有了加粗的效果,这就是v-html发挥了作用,bingo!

  1. v-show 命令
    v-show ,听这名字就可以猜测它跟元素的显示/隐藏 相关,没错,它就是用来控制元素的display css属性的。

    v-show 命令的取值为true/false,分别对应着显示/隐藏。有比较才能看到效果,我们拿两个标签分别设置不同的值,看看解析渲染效果。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <div id="app">
    <p v-show="show1">我是true</p>
    <p v-show="show2">我是false</p>
    </div>
    <script>
    let app = new Vue({
    el:"#app",
    data:{
    show1:true,
    show2:false
    }
    });
    </script>

    我们用了两个

    标签,都加上了 v-show 命令,取值分别为true和fasle,直接看效果吧!
    v-text

第一个p标签的v-show设置为true,元素正常显示;第二个p标签的v-show设置为false,元素解析成:

1
<p style="display: none">我是false</p>

所以它不会显示在视图上。这就是 v-show 命令的用法,简单明了。

  1. v-if 命令
    v-if 命令的取值也是为true或false,它控制元素是否需要被渲染出来,听起来有点抽象,不怕,同样,我们拿两个元素设置不用的值,对比一下看效果就知道了。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <div id="app">
    <p v-if="if_1">我是true</p>
    <p v-if="if_2">我是true</p>
    </div>
    <script>
    let app = new Vue({
    el:"#app",
    data:{
    if_1:true,
    if_2:false
    }
    });
    </script>

我们把 v-show 命令换成了 v-if ,同样是两个

标签,同样是不同的取值:true和false。我们看效果:
v-text
看到了吧,设置为true的

标签,成功渲染出来,而设置为false的

标签,直接被一行注释代替了,并没有被解析渲染出来。

也许你会问了, v-show 和 v-if 都能控制元素显示或者隐藏,这两个怎么区别使用呢?

记住一点:如果需要频繁切换显示/隐藏的,就用 v-show ;如果运行后不太可能切换显示/隐藏的,就用 v-if

  1. v-else 命令

if和else在编程语言一般都是结对出现的,在vue里面也不例外。它没有对应的值,但是要求前一个兄弟节点必须要使用 v-if 命令,也对,没有if,哪来的else。

1
2
3
4
5
6
7
8
9
10
11
12
13
<div id="app">
<p v-if="if_1">我是if</p>
<p v-else>我是else</p>
</div>
<script>
let app = new Vue({
el:"#app",
data:{
if_1:false
}
});
</script>

我们使用两个

标签,第一个使用 v-if 命令,并取值为false,第二个使用 v-esle 命令,啥也不说了,看效果最直观:
v-text

只有第二个

标签被渲染出来,第一个

标签由于 v-if 命令的值为false,直接被忽视了,不渲染。

同理,一旦第一个标签的 v-if 命令的值为true,被忽视的就是第二个

标签了。 v-if 和 v-else 只有一个会被渲染出来。
有兴趣的同学,可以继续去了解一下 v-else-if 命令,同样很简单