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

1.v-text(文本插值)
<html>
<head>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
            <span v-text="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 的元素的后面,否则它将不会被识别

 <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>

<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缩写为@

<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>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,783评论 5 472
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,396评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,834评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,036评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,035评论 5 362
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,242评论 1 278
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,727评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,376评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,508评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,415评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,463评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,140评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,734评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,809评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,028评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,521评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,119评论 2 341

推荐阅读更多精彩内容