摘要:數(shù)據(jù)綁定方式普通的文本可以使用語法雙大括號插在標簽內(nèi)部表達式每個綁定都只能包含單個表達式只會添加一次當再次修改時,不會觸發(fā)機制插入文本較少使用插入不推薦使用計算屬性基于它們的依賴進行緩存的,只有在它的相關(guān)依賴發(fā)生改變時才會重新求值。
數(shù)據(jù)綁定方式:
1.普通的文本 可以使用 “Mustache”語法 (雙大括號) {{data}} 插在標簽內(nèi)部eg:
{{}}
//js: data{ msg:"welcome to vuejs!", ok:true, number:0 } //html:{{msg}}
javascript表達式:每個綁定都只能包含單個表達式{{ok?"Yes":"No"}}
{{ number + 1 }}
{{ msg.split("").reverse().join("") }}
2.v-once
{{msg}}
只會添加一次msg,當再次修改msg時,不會觸發(fā)update 機制3.v-text 插入文本(較少使用) v-html 插入html(不推薦使用)
data{ msg:"welcome to vuejs!", rawHtml:"pppp
" }
4.v-bind <=> : v-on<=> @
v-bind:id="mask" :id="mask"
v-on:click ="showDialog" @click ="showDialog"計算屬性
基于它們的依賴進行緩存的,只有在它的相關(guān)依賴發(fā)生改變時才會重新求值。
computed: { now: function () { return Date.now() } }
計算屬性默認只有 getter ,也可以自定義setter屬性
// ... computed: { fullName: { // getter get: function () { return this.firstName + " " + this.lastName }, // setter set: function (newValue) { var names = newValue.split(" ") this.firstName = names[0] this.lastName = names[names.length - 1] } } } // ...
現(xiàn)在再運行 vm.fullName = "John Doe" 時,setter 會被調(diào)用,vm.firstName 和 vm.lastName 也相應(yīng)地會被更新。
Class 與 Style 綁定。對象語法:
data{ isActive:true, hasError:false }
some message
數(shù)組語法:
//數(shù)組執(zhí)行分支判斷some message
//or //數(shù)組語法中使用對象語法some message
條件渲染 v-if & v-show
不能2個一起用在同一個標簽
最多是 在v-if 條件里面加一個
如
列表渲染 v-forsome message
items是源數(shù)據(jù) item 是數(shù)組元素迭代別名
js: data: { parentMessage: "Parent", items: [ { message: "Foo" }, { message: "Bar" } ] } //html:
(item, index)中的 index 是索引
v-for on a
{{ item.msg }}
v-for with v-if
//在循環(huán)體內(nèi)判斷
一個組件的v-for,這里么的:key是必須的。
//為了傳遞迭代數(shù)據(jù)到組件里,我們要用 props //*不自動注入 item 到組件里的原因是,因為這使得組件會與 v-for 的運作緊密耦合。在一些情況下,明確數(shù)據(jù)的來源可以使組件可重用*
! 還有一個要注意的是 當你用 的是ul ol標簽的時候,通常里面允許放,可以用 is="todo-item" 指向說明
當源數(shù)據(jù)為json 格式對象時
//js: data: { object: { firstName: "John", lastName: "Doe", age: 30 } } //html: (也可以提供第二個的參數(shù)為鍵名 key):{{ key }}: {{ value }}
要修改 vue $data里面的 源數(shù)據(jù) 檢查注意事項
??修改數(shù)組方法有
#變異方法
push()
pop()
shift()
unshift()
splice()
sort()
reverse()
vm.items.push({ message: "Baz" });
#替換數(shù)組
filter()
concat()
slice()
vm.items = vm.items.filter(function (item) { return item.message.match(/Foo/) }) vm.items = vm.items.concat([~]); ~~
由于 JavaScript 的限制,Vue 不能檢測以下變動的數(shù)組:
1.直接賦值來設(shè)置一個項或者數(shù)組長度
如:
vm.items[indexOfItem] = newValue vm.items.length = newLength
解決方法:
使用vue 對象的set方法 或者 數(shù)組內(nèi)置 方法splice
//設(shè)置一個項 // Vue.set Vue.set(vm.items, indexOfItem, newValue) // Array.prototype.splice vm.items.splice(indexOfItem, 1, newValue) //改變數(shù)組的長度 vm.items.splice(newLength)
??修改對象
var vm = new Vue({ data: { a: 1 } }) // `vm.a` 現(xiàn)在是響應(yīng)式的 vm.b = 2 // `vm.b` 不是響應(yīng)式的
那么怎么解決? 這里Vue 對象的set方法又可以幫到我們
eg: Vue.set(object, key, value)
var vm = new Vue({ data: { userProfile: { name: "Anika" } } })
向以上 data中添加一個項 如下:
Vue.set(vm.userProfile, "age", 27)
你還可以使用 vm.$set 實例方法,它只是全局 Vue.set 的別名:
=>
this.$set(this.userProfile, "age", 27)
var vm = new Vue({ data: { userProfile: { name: "Anika", age:27 } } })
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/88741.html
摘要:本文是本人在搭建阿里云的服務(wù)器環(huán)境的時候,結(jié)合阿里云提供的文檔和自己編譯安裝過程中的各種得來。適用對象適用于熟悉操作系統(tǒng),剛開始使用阿里云進行建站的個人用戶。 本文是本人在搭建阿里云的ECS服務(wù)器環(huán)境的時候,結(jié)合阿里云提供的文檔和自己編譯安裝過程中的各種ERROR得來。 適用對象 適用于熟悉Linux操作系統(tǒng),剛開始使用阿里云進行建站的個人用戶。 基本流程 使用云服務(wù)器 ECS 搭建L...
摘要:本文是本人在搭建阿里云的服務(wù)器環(huán)境的時候,結(jié)合阿里云提供的文檔和自己編譯安裝過程中的各種得來。適用對象適用于熟悉操作系統(tǒng),剛開始使用阿里云進行建站的個人用戶。 本文是本人在搭建阿里云的ECS服務(wù)器環(huán)境的時候,結(jié)合阿里云提供的文檔和自己編譯安裝過程中的各種ERROR得來。 適用對象 適用于熟悉Linux操作系統(tǒng),剛開始使用阿里云進行建站的個人用戶。 基本流程 使用云服務(wù)器 ECS 搭建L...
閱讀 1310·2021-11-22 14:44
閱讀 2445·2021-09-30 09:47
閱讀 1221·2021-09-09 11:56
閱讀 2077·2021-09-08 09:45
閱讀 3953·2021-08-31 09:40
閱讀 1250·2019-08-30 15:52
閱讀 2044·2019-08-30 14:09
閱讀 1578·2019-08-26 17:04