Vue常用指令


vue中常用v-表示指令,下面總結一下常用的指令有哪些:

插入文本:v-text

相當於元素的innerText屬性,必須是雙標簽

 

插入HMTL:v-html

相當於元素的innerHTML屬性

 

循環:v-for

v-for的使用,除了item屬性,還有一些其他輔助屬性。假設你現在循環的對象名字為students:

  • 如果students是數組,還有index屬性,如v-for="(item,index) in students";
  • 如果students是對象,還有value,key屬性,如v-for="(value,key,index) in students";

 

條件渲染

第一種:if ... else if ...else型

是否插入元素

 

第二種:v-show

是否隱藏元素

 

屬性綁定:v-bind

v-bind:屬性名="常量 || 變量名",簡寫形式——:屬性名="常量 || 變量名"

如:

<div v-bind:屬性名="變量"></div>
//可以簡寫成
<div :屬性名="變量"></div>

//如果要賦值常量,需要給常量用單引號包起來,如
<div :屬性名=" '常量' "></div>

 

雙向綁定:v-model

所謂的雙向綁定,就是你在視圖層里面改變了值,vue里面對應的值也會改變。只能給具備value屬性的元素進行雙向數據綁定。

 

綁定事件:v-on

v-on:click = "方法名 || 直接改變 vue 內部變量",簡寫形式——@click = "方法名 || 直接改變 vue 內部變量"

<div v-on:click=" num = 1 "></div>
//可以簡寫成
<div @click=" num = 1 "></div>

可以直接更改vue內部的變量,如上面的num,是我在data里面定義的一個屬性。

 

上述所有指令的例子代碼:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>vue常用指令</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <script src="https://cdn.bootcss.com/vue/2.5.15/vue.js"></script>
        <style type="text/css">
        .even{background-color: #f2f2f2}
        </style>
    </head>
    <body>    
        <div id="app"></div>
        
        <script type="text/javascript">
            new Vue({
                el:'#app',
                template:`
                    <div>
                        <h1 v-text="myTxt"></h1>
                        <hr/>
                        <div v-html="myHtml"></div>
                        <hr/>
                        <button v-if=" num == 1 ">顯示1</button>
                        <button v-else-if=" num == 2 ">顯示2</button>
                        <button v-else=" num == 3 ">顯示3</button>
                        <hr/>
                        <button v-show="isShow">我默認顯示</button>
                        <hr/>
                        <div v-bind:data-name=" myName " :data-sex=" '女' ">通過v-bind來給屬性賦值</div>
                        <hr/>
                        <button v-on:click=" num = 1">改變num值為1</button>
                        <hr/>
                        <input v-model="country" placeholder="試着輸入中國">
                        <div v-if=" country == '中國' ">中國夢,我的夢!</div>
                        <hr>
                        <ul>
                            <li v-for="(item,index) in newsList" :class="index%2==0 ? 'even' : ''">
                                <p>{{item.title}}<p>
                                發布時間:<span>{{item.time}}<span>
                            </li>
                        </ul>
                        <hr>
                        <div v-for="(value,key) in students">
                            {{key}}:{{value}}
                            <br/>
                        </div>
                        
                    </div>
                `,
                data:{
                    myTxt:'我是v-text的值',
                    myHtml:'<p>我是HTML</p>',
                    num:2,//改變num的值看效果
                    isShow:true,
                    myName:'Sheryl',
                    count:1,
                    country:'',
                    newsList:[
                        {title:"新聞標題一",time:"2018-08-31"},
                        {title:"新聞標題二",time:"2018-08-31"},
                        {title:"新聞標題三",time:"2018-08-31"}
                    ],
                    students:{
                        'name':'Sheryl',
                        'sex':'',
                        'age':25
                    }
                },
                methods:{
                    changeCount(action) {
                        if (action === 'minus') {
                            if (this.count > 1) {
                                this.count--;
                            } else {
                                alert("不能再減了")
                            }
                        } else {
                            this.count++
                        }
                    },
                }
            })
        </script>       
    </body>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM