轉自:
1. v-text
作用 : 操作元素中的純文本
快捷方式 : {{}}
栗子1
簡寫形式:將v-text=""換成{{}}
<div id="app"> {{ message }} </div> var app = new Vue({ el : '#app', data : { message : 'hello world' } })
結果:hello world
栗子2
<h1 id="app1" v-text="'今天是'+year+'年'+month+'月'"></h1> var app1 = new Vue({ el : "#app1", data : { year : new Date().getFullYear(), month : new Date().getMonth()+1 } })
結果:今天是2017年5月
等同於:<h1 id="app1">今天是{{year}}年{{month}}月</h1>
- 這里v-text="",雙引號並不是代表字符串,而是vue自定義的划定界限的符號。如果我們里邊輸出字符串,就要在里邊再添加一對單引號。而且經測驗,要想輸出字符串,必須添加單引號,否則會報錯
- 這里month默認是從0開始的,所以我們要+1
- 這里{{}}代表的就是"",所以在v-text=""中,我們在內容里邊就不需要再寫{{}}了,直接寫data值就行
栗子3
<div id='app'> <h1>{{ message }}</h1> <h1>{{ message.concat('!!!') }}</h1> <h1>{{ message? 'has message' : 'no message' }}</h1> 下面這兩個語句報錯 <h1>{{ var message = 'message' }}</h1> <h1>{{ if(message){return info} }}</h1> </div> var app = new Vue({ el : '#app', // 綁定了上邊的id='app'的元素 data : { message : 'hello' } })
結果:
hello
hello!!!
has message
第四五句報錯
{{}}里邊支持表達式
但不是所有的表達式都能放在里邊,只有單個語句的可以,像var和if就不可以
如果想使用if語句的話,用三元運算符代替
栗子4
可以采用對象的形式傳遞多個數據
<div id="app2"> <p>姓名 : {{ person.name }}</p> <p>性別 : {{ person.sex }}</p> <p>年齡 : {{ person.age }}</p> </div> var app2 = new Vue({ el : "#app2", data : { person : { name : '小明', sex : '男', age : 8 } } })
結果:
姓名 : 小明
性別 : 男
年齡 : 8

補充一點:
用{{}}的弊端:當網速很慢或者下面的JavaScript寫錯時,會直接將{{message}}渲染到頁面
而使用v-text="message" 如果出錯是不顯示的
所以在實際開發中用v-text比較多
2. v-html
作用 : 操作元素中的HTML標簽
v-text會將元素當成純文本輸出,v-html會將元素當成HTML標簽解析后輸出
栗子1
<div id="app3"> {{ message }} </div> var app3 = new Vue({ el : "#app3", data : { message : "[圖片上傳失敗...(image-b28bd8-1533127932697)]" } })
結果:輸出代表圖片名稱的字符串,而不是將圖片輸出
由此可見:{{}}/v-text不能解析html元素,只會照樣輸出
栗子2
<div id="app3" v-html="message"></div> var app3 = new Vue({ el : "#app3", data : { message : "[圖片上傳失敗...(image-6734f-1533127932697)]" } })
結果 : 成功顯示圖片

3.gif
注意 : 你的站點上動態渲染的任意 HTML 可能會非常危險,因為它很容易導致 XSS 攻擊。請只對可信內容使用 HTML 插值,絕不要對用戶提供的內容插值。
3. v-bind
作用 : 綁定標簽屬性,:后面是標簽屬性名
栗子1
<div id="app"> <a href="" v-bind:href="hrefvalue"> [圖片上傳失敗...(image-27c495-1533127932697)] </a> </div> var app = new Vue({ el : "#app", data : { hrefvalue : 'http://www.baidu.com', source : 'img/1.jpg' } })

5.gif
栗子2
<div id="app2"> <span v-bind:title = 'message'> 鼠標懸停幾秒鍾查看此處動態綁定的提示信息! </span> </div> var app2 = new Vue({ el : '#app2', data : { message : '頁面加載於' + new Date() } })
補充v-bind小例子
<div :class="{classA:isOk}">根據條件判斷綁定</div> <div :class="[classA,classB]">綁定多個class值,數組</div> <div :class="isOk?classA : classB">綁定三元運算符</div> <p> <input type="checkbox" id="isOk" v-model="isOk"> <label for="isOk">isOk = {{isOk}}</label> </p> <div :style="{color:red, fontSize:font}">綁定style</div> <div :style="styleObject">對象方式綁定style</div>
var app = new Vue({ el : "#app", data : { imgSrc : "./img/dele.jpg", webUrl : "www.baidu.com", className : "a", isOk : true, classA : 'a', classB : 'b', red : 'red', font : '30px', styleObject : { // 將style寫成對象寫法 color : 'orange', fontSize : '40px' } } })
轉自:https://www.jianshu.com/p/4131e8b033de