溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

vue常用指令是什么

發(fā)布時(shí)間:2021-01-27 14:08:02 來(lái)源:億速云 閱讀:145 作者:小新 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)vue常用指令是什么,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

vue常用指令有:v-once指令、v-show指令、v-if指令、v-else指令、v-else-if指令、v-for指令、v-html指令、v-text指令、v-bind指令、v-on指令、v-model指令等等。

vue.js官方給自己的定為是數(shù)據(jù)模板引擎,并給出了一套渲染數(shù)據(jù)的指令。

Vue.js的指令是以v-開(kāi)頭的,它們作用于HTML元素,指令提供了一些特殊的特性,將指令綁定在元素上時(shí),指令會(huì)為綁定的目標(biāo)元素添加一些特殊的行為,我們可以將指令看作特殊的HTML特性(attribute)。

指令的作用是當(dāng)表達(dá)式的值改變時(shí),相應(yīng)地將某些行為應(yīng)用到 DOM 上。

vue常用指令總結(jié)

1.v-once

能執(zhí)行一次性地插值,當(dāng)數(shù)據(jù)改變時(shí),插值處的內(nèi)容不會(huì)更新。但請(qǐng)留心這會(huì)影響到該節(jié)點(diǎn)上的其它數(shù)據(jù)綁定:

<div id="app">
        <p v-once>原始值: {{msg}}</p>
        <p>后面的: {{msg}}</p>
        <input type="text" v-model="msg">
</div>
<script src="js/vue.js"></script>
<script>
    new Vue({
       el: '#app',
        data: {
           msg: '今天的天氣很好!'
        }
    });

vue常用指令是什么

加了 v-once指令 不會(huì)改變了

2.v-show  

和v-if一樣  區(qū)別是if是注釋掉 v-show是給一個(gè)display:none的屬性 讓它不顯示! 用法 參考下一個(gè)v-if指令.

v-show和v-if的區(qū)別:

v-if 是真實(shí)的條件渲染,因?yàn)樗鼤?huì)確保條件塊在切換當(dāng)中適當(dāng)?shù)劁N(xiāo)毀與重建條件塊內(nèi)的事件監(jiān)聽(tīng)器和子組件; v-show 則只是簡(jiǎn)單地基于 CSS 切換。

v-if 有更高的切換消耗而 v-show 有更高的初始渲染消耗。因此,如果需要頻繁切換使用 v-show 較好,如果在運(yùn)行時(shí)條件不大可能改變則使用 v-if 較好。

3.v-if

v-if后面的是一個(gè)表達(dá)式或者也可以是返回true或false的表達(dá)式。  且值為true和fasle   false的話就會(huì)被注釋     v-show是給一個(gè)display:none的屬性 讓它不顯示! true就正常顯示。

<div id="app">
<p v-if="show">要顯示出來(lái)!</p>
<p v-if="hide">不要顯示出來(lái)!</p>
<p v-if="height > 1.55">小明的身高: {{height}}m</p>
<p v-if="height1 > 1.55">小明的身高: {{height1}}m</p>
<p v-if="3>2">打死你: {{height1}}m</p>
</div>
<script src="js/vue.js"></script>
<script>
   new Vue({
                   el: '#app',
                 data: {
                           show: true,
                            hide: false,
                           height: 1.68,
                            height1: 1.50
                           }
});
</script>

4.v-else

必須和v-if一起用才可以 不能單獨(dú)用 而且必須在v-if下面 中間有別的標(biāo)簽也會(huì)報(bào)錯(cuò)

<div id="app">
  <p v-if="height > 1.7">小明的身高是: {{height}}m</p>
  <p v-else>小明的身高不足1.70m</p>
</div>
<script src="js/vue.js"></script>
<script>
  new Vue({
        el: '#app',
        data: {
        height: 1.88
    }
});
</script>

5.v-else-if  

這個(gè)比較簡(jiǎn)單 直接看代碼就可以了 哈哈哈  輸入成績(jī)多少 就顯示相應(yīng)的等級(jí)

<div id="app">
        <p>輸入的成績(jī)對(duì)應(yīng)的等級(jí)是:</p>
        <p v-if="score >= 90">優(yōu)秀</p>
        <p v-else-if="score >= 75">良好</p>
        <p v-else-if="score >= 60">及格</p>
        <p v-else>不及格</p>
        <input type="text" v-model="score">
    </div>
    <script src="js/vue.js"></script>
    <script>
        new Vue({
           el: '#app',
            data: {
               score: 90  // 優(yōu)秀 良好 及格 不及格
            }
        });
    </script>

6.v-for

基于數(shù)據(jù)渲染一個(gè)列表,類(lèi)似于JS中的遍歷。其數(shù)據(jù)類(lèi)型可以是 Array | Object | number | string

該指令之值,必須使用特定的語(yǔ)法(item, index) in items,  index是索引,可以省略。item是 為當(dāng)前遍歷元素提供別名(可以自己隨便起名字) 。v-for的優(yōu)先級(jí)別高于v-if之類(lèi)的其他指令

<body>
        <div id="app">
            <!-- 遍歷數(shù)組 -->
            <p v-for="(d,index) in msg">
                {{index +':'+d}}
            </p>
            <!-- 遍歷對(duì)象 -->
            <div v-for="(dd,index) in obj">
                {{index+':'+dd}}
            </div>
            <!-- 遍歷對(duì)象 也可以不要index索引 -->
            <div v-for="dd2 in obj">
                {{dd2}}
            </div>
            <!-- 遍歷num和string -->
            <p v-for="gg in num2">{{gg}}</p>
            <p v-for="gg2 in string2">{{gg2}}</p>
             
        </div>
    </body>
    <script src="vue/vue.js"></script>
    <script type="text/javascript">
        new Vue({
            el:'#app',
            data:{
                msg:[123,98,25,63],
                obj:{name:'敏敏',age:'21',height:'160'},
                num2:'1335454',  //注意這里不要寫(xiě)成了num2:1335154
                string2:'xvzhiming'
            }
        })
    </script>

  vue常用指令是什么

7.v-html

雙大括號(hào)會(huì)將數(shù)據(jù)解釋為普通文本,而非 HTML 代碼。為了輸出真正的 HTML,你需要使用 v-html  而且給一個(gè)標(biāo)簽加了v-html 里面包含的標(biāo)簽都會(huì)被覆蓋。

注意v-html要慎用 因?yàn)闀?huì)出現(xiàn)安全問(wèn)題  官網(wǎng)解釋為:你的站點(diǎn)上動(dòng)態(tài)渲染的任意 HTML 可能會(huì)非常危險(xiǎn),因?yàn)樗苋菀讓?dǎo)致 XSS 攻擊。請(qǐng)只對(duì)可信內(nèi)容使用 HTML 插值,絕不要對(duì)用戶提供的內(nèi)容使用插值。

<div id="app" v-html="html">
  <p v-text="msg">哈哈哈</p>  
</div>
<script type="text/javascript">
  new Vue({
        el:'#app',
        data:{
            msg:'我愛(ài)敏敏??!',
            html:'<p>大海森林我都不愛(ài)!</p>'
            }
    })
</script> 

8.v-text

給一個(gè)便簽加了v-text 會(huì)覆蓋標(biāo)簽內(nèi)部原先的內(nèi)容  如下面的例子  哈哈哈不會(huì)顯示

<div id="app">
    <p v-text="msg">哈哈哈</p>
</div>
<script type="text/javascript">
    new Vue({
          el:'#app',
          data:{
            msg:'我愛(ài)敏敏'
            }
        })
</script>

9.v-bind

用法

<!-- 完整語(yǔ)法 --> 
<a v-bind:href="url">...</a> 
<!-- 縮寫(xiě) --> <a :href="url">...</a>

<div id="app">
     改變src alt等屬性
        <img v-bind:src="imgSrc" :alt="alt">
        <img :src="imgSrc1" :alt="alt">
    </div>
    <script src="js/vue.js"></script>
    <script>
        new Vue({
           el: '#app',
            data: {
               imgSrc: 'img/img_01.jpg',
               imgSrc1: 'img/img_02.jpg',
               alt: '我是美女'
            }
        });
    </script>

還可以綁定類(lèi)名和css樣式等

<div id="app">
        //v-for是一個(gè)遍歷                 給他一個(gè)calss 如果index===cative class名是active,如果不等就為空
        //index 是v-for的索引
        <p v-for="(college, index) in colleges" :class="index === activeIndex ? 'active': ''">
            {{college}}
        </p>
        <p :style="{color: fontColor}">今天的天氣很好!</p>
    </div>
 
    <script src="js/vue.js"></script>
    <script>
        new Vue({
           el: '#app',
            data: {
               colleges: [
                   'iOS學(xué)院',
                   'Java學(xué)院',
                   'HTML5學(xué)院',
                   'UI學(xué)院',
                   'VR學(xué)院'
               ],
                activeIndex: 0,
                fontColor: 'green'
            }
        });
    </script>

注意input里面 用了v-blnd 寫(xiě)法不在是{{}}包著了;

<body>
        <div id="app"> <br>              //加粗的內(nèi)容剛剛學(xué)時(shí) 很容易出錯(cuò) 注意不要加{{}};
            原始值<input type="" name="" id="" <strong>:value=name</strong> />
             模板<input type="" name="" id="" <strong>:value=name.split('').reverse().join()</strong> />
            methods<input type="" name="" id="" <strong>:value=fz()</strong> />
            conputed<input type="" name="" id="" <strong>:value=fz2</strong> />
        </div>
    </body>
    <script type="text/javascript">
        new Vue({
            el:'#app',
            data:{
                name:'chenglianjie'
            },
            methods:{
                fz(){
                    return this.name.split('').reverse().join('');
                }
            },<br>              //這是vue的計(jì)算屬性 在我的博客vue分類(lèi)里面有介紹
            computed:{
                fz2(){
                    return this.name.split('').reverse().join('');
                }
            }
        })
    </script>

10.v-on  

綁定事件的  還有些用法在后面的博客中會(huì)提到

<!-- 完整語(yǔ)法 -->
 <a v-on:click="doSomething">...</a> 
 
<!-- 縮寫(xiě) --> 
<a @click="doSomething">...</a>

11.v-model

v-model是一個(gè)指令,限制在<input>、<select>、<textarea>、components中使用   用于數(shù)據(jù)的雙向綁定操作.

關(guān)于“vue常用指令是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

vue
AI