1.v-text(文本插值) 

<html>
<head>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
            <span v-html ="vtext"></span>
            <span>{{vtext}}</span>
    </div>
</body>
</html>
<script>
    var vm = new Vue({
        el: '#app',
        data: {
            vtext : 'aaa',
            vhtml : '<span>{{vtext}}</span>',
        }
    })
</script>

可以使用{{}}代替v-text

2.v-html(普通HTML插入)

<html>
<head>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
            <span>{{vtext}}</span>
            <div v-html="vhtml"></div>
    </div>
</body>
</html>
<script>
    var vm = new Vue({
        el: '#app',
        data: {
            vtext : 'aaa',
            vhtml : '<span>aaa</span>',
        }
    })
</script>

 

3.v-show(显示或隐藏标签)

有v-show的元素始终会被渲染并保留在DOM中。v-show只是简单地切换元素的CSS属性display。

<html>
<head>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
            <h1 v-if="awesome">Vue is awesome!</h1>
    </div>
</body>
</html>
<script>
    var vm = new Vue({
        el: '#app',
        data: {
            vshow : false,
        }
    })
</script>

 

4.v-if、v-else、v-else-if(表达式的值的真假条件渲染元素)

说明:

      v-if、v-else、v-else-if指令用于条件性地渲染DOM,当结果是假时Dom不会生成, 而v-show只是简单地切换元素的CSS属性display。 

      v-else元素必须紧跟在带v-if或者v-else-if 的元素的后面,否则它将不会被识别。
 

<html>
<head>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <!-- 单独使用v-if -->
        <h1 v-if="vif">中国</h1>      
        <!-- 使用v-if和v-else   v-else元素必须紧跟在带v-if或者v-else-if的元素的后面,否则它将不会被识别。-->
        <h1 v-if="vif2">中国</h1>
        <h1 v-else>其他</h1>
        <!-- 使用v-if、v-else-if和v-else组合使用 -->
        <h1 v-if="type == '中国'">中国</h1>
        <h1 v-else-if="type == '美国'">美国</h1>
        <h1 v-else-if="type == '俄罗斯'">俄罗斯</h1>
        <h1 v-else>其他</h1>
    </div>
</body>
</html>
<script>
    var vm = new Vue({
        el: '#app',
        data: {
            vif : true,
            vif2:false,
            type:'日本'
        }
    })
</script>

5.v-for(基于源数据多次渲染元素)

<html>
<head>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <ul>
            <li v-for="item in vfors">
                {{ item.message }}
            </li>
        </ul>
        <ul>
            <li v-for="(item,index) in vfors">
                {{ index + "." +item.message }}
            </li>
        </ul>
    </div>
</body>
</html>
<script>
    var vm = new Vue({
        el: '#app',
        data: {
            vfors : [
                    { message: 'Foo' , id = 1 },
                    { message: 'Bar' , id = 2 }
                    ],
        }
    })
</script>

可以用of替代in作为分隔符

<ul>
<li v-for="item of vfors">
    {{ item.message }}
</li>
</ul>

当Vue正在更新使用v-for渲染的元素列表时,它默认使用“就地更新”的策略。如果数据项的顺序被改变,Vue将不会移动DOM元素来匹配数据项的顺序,而是就地更新每个元素,并且确保它们在每个索引位置正确渲染。

如果需要重新排序现有元素,就必须提供一个唯一key属性

<ul>
    <li v-for="item in vfors" v-bind:key="item.id">
        {{ item.message }}
    </li>
</ul>

6.v-on(绑定事件监听器)

v-on既能监听原生DOM事件,也可以监听自定义组件触发的自定义事件。

v-on缩写为@
 

<html>
<head>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <!-- v-on绑定点击事件 -->
        <button v-on:click="click1">v-on绑定点击事件</button>
        <!-- v-on缩写 -->
        <button @click="click1">v-on缩写</button>
        <!-- 传参 -->
        <button @click="click2('bbbbb')">传参bbbbb</button>
    </div>
</body>
</html>
<script>
    var vm = new Vue({
        el: '#app',
        methods:{
            click1:function(){
                alert("aaaaa");
            },
            click2:function(value){
               alert(value);
            }
        }
    })
</script>

7.v-bind(动态地绑定特性)

<html>
<head>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <!-- v-bind绑定href -->
        <a v-bind:href="url" target="_blank">{{url}}</a><br/>
        <!-- v-bind缩写: -->
        <a :href="url" target="_blank">v-bind缩写:</a><br/>
        <!-- 绑定内联样式style  -->
        <span :style="styleobj">绑定内联样式style:</span><br/>
        <!-- 绑定class  -->
        <span :class=" { classObj : isclassObj }">绑定class:</span><br/>
    </div>
</body>
</html>
<style >
    .classObj {
        color: red;
        font-size: 50px;
    }
</style>
<script>
    var vm = new Vue({
        el: '#app',
        data:{
            url : "http://www.baidu.com",
            styleobj:{
                color:'red',
            },
            isclassObj:true,
        }
    })
</script>

8.v-model(数据双向绑定)

<html>
<head>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
            <input v-model="message" placeholder="edit me">
            <p>message is: {{ message }}</p><br/>

            <input type="checkbox" v-model="checked">
            <label for="checkbox">{{ checked }}</label><br/>

            <select v-model="selected">
                <option>A</option>
                <option>B</option>
                <option>C</option>
            </select>
            <span>Selected: {{ selected }}</span><br/>
    </div>
</body>
</html>
<script>
    var vm = new Vue({
        el: '#app',
        data:{
            message : "aaaaaa",  //初始值
            checked:true,
            selected:'C',
        }
    })
</script>

9.v-slot

 

10.v-pre

 

11.v-cloak

 

12.v-once

只渲染元素和组件一次。随后的不在重新渲染。

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

Vue—指令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-on_Vue