您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)vue指的是單項(xiàng)數(shù)據(jù)流還是雙向數(shù)據(jù)流的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
vue是單項(xiàng)數(shù)據(jù)流。雖然vue有雙向綁定“v-model”,但是vue父子組件之間數(shù)據(jù)傳遞,仍然還是遵循單向數(shù)據(jù)流的,父組件可以向子組件傳遞props,但是子組件不能修改父組件傳遞來的props,子組件只能通過事件通知父組件進(jìn)行數(shù)據(jù)更改。
本教程操作環(huán)境:windows7系統(tǒng)、vue2.9.6版,DELL G3電腦。
簡而言之,雙向綁定就是model的更新會(huì)觸發(fā)view的更新,view的更新會(huì)觸發(fā)model的更新,它們的作用是相互的
[圖片上傳失敗...(image-81a06f-1556975918443)]
簡而言之,單向數(shù)據(jù)流就是model的更新會(huì)觸發(fā)view的更新,view的更新不會(huì)觸發(fā)model的更新,它們的作用是單向的
這不是廢話嗎,誰都知道的
下面就是真正的干貨了,板凳坐好
<ul> <li>Vue是單向數(shù)據(jù)流,不是雙向綁定</li> <li>Vue的雙向綁定不過是語法糖</li> <li>Object.definePropert是用來做響應(yīng)式更新的</li> </ul>
放在組件上
父組件
<AnalysisSub v-model="phoneInfo" :zip-code.sync="zipCode" /
子組件
<template> <div> <input :value="phoneInfo.phone" type="number" placeholder="手機(jī)號(hào)" @input="handlePhoneChange" /> <input :value="zipCode" type="number" placeholder="郵編" @input="handleZipCodeChange" /> </div></template><script>export default { name: "PersonalInfo", model: { prop: "phoneInfo", // 默認(rèn) value event: "change" // 默認(rèn) input }, props: { phoneInfo: Object, zipCode: String }, methods: { handlePhoneChange(e) { this.$emit("change", { ...this.phoneInfo, phone: e.target.value }); }, handleZipCodeChange(e) { this.$emit("update:zipCode", e.target.value); } } };</script>
父組件的寫法等同于
<AnalysisSub :phone-info="phoneInfo" @change="val => (phoneInfo = val)" :zip-code="zipCode" @update:zipCode="val => (zipCode = val)"/>
放在input元素上
其實(shí)上文已經(jīng)體現(xiàn)了
<input v-model=“phoneInfo.phone”/> <input :value="PhoneInfo.phone" @input="val => { PhoneInfo.phone = val }"
以上兩句是相等的
model 2.2.0+
允許一個(gè)自定義組件在使用 v-model 時(shí)定制 prop 和 event。默認(rèn)情況下,一個(gè)組件上的 v-model 會(huì)把 value 用作 prop 且把 input 用作 event,但是一些輸入類型比如單選框和復(fù)選框按鈕可能想使用 value prop 來達(dá)到不同的目的。使用 model 選項(xiàng)可以回避這些情況產(chǎn)生的沖突。
.sync修飾符 2.3.0+
在有些情況下,我們可能需要對一個(gè) prop 進(jìn)行“雙向綁定”。不幸的是,真正的雙向綁定會(huì)帶來維護(hù)上的問題,因?yàn)樽咏M件可以修改父組件,且在父組件和子組件都沒有明顯的改動(dòng)來源。
感謝各位的閱讀!關(guān)于“vue指的是單項(xiàng)數(shù)據(jù)流還是雙向數(shù)據(jù)流”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。