vue在自定義組件中使用v-model及v-model的本質(zhì)

v-model本質(zhì)是什么?如何在我們寫的自定義組件的使用v-model?

1喂分、本質(zhì)

  • 首先我們來(lái)看看v-model是個(gè)什么東西锦庸?

  • 其實(shí)本質(zhì)上,v-modelv-bind以及v-on配合使用的語(yǔ)法糖:

<input v-model="test" />

// 就是相當(dāng)于: 
<input :value="test" @input="value= $event.target.test" />

2蒲祈、model選項(xiàng)

(1)由上面可以知道v-model的本質(zhì)是什么甘萧,那么我們?nèi)绾卧谧远x組件上使用v-model呢?首先要了解model這個(gè)選項(xiàng)梆掸。

允許一個(gè)自定義組件在使用 v-model 時(shí)定制 prop 和 event扬卷。默認(rèn)情況下,一個(gè)組件上的 v-model 會(huì)把 value 用作 prop 且把 input 用作 event酸钦,但是一些輸入類型比如單選框和復(fù)選框按鈕可能想使用 value prop 來(lái)達(dá)到不同的目的怪得。使用 model 選項(xiàng)可以回避這些情況產(chǎn)生的沖突。

(2)結(jié)合第一點(diǎn)的代碼概括起來(lái)是個(gè)什么意思呢?就是說(shuō)徒恋,本來(lái)默認(rèn)是這樣的:

  • 子接收到的prop值 = value
  • 監(jiān)聽子組件觸發(fā)的事件名event = input

(3)我們要在自定義組件上用啊蚕断,老是用默認(rèn)的那豈不是限制了我的發(fā)揮?于是入挣,vue在2.2.0版本中新增了一個(gè)model選項(xiàng)亿乳,可以讓我們這樣:

  • 子接收到的prop值 = "想什么值就什么值"
  • 監(jiān)聽子組件觸發(fā)的事件名event = "想什么事件名就什么事件名"

(4)還是有點(diǎn)蒙?沒關(guān)系径筏,實(shí)踐才是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)嘛葛假,我們來(lái)用實(shí)例跑一下,看看怎么用匠璧,不過(guò)在這之前桐款,你得先理解父子組件中的傳值、單項(xiàng)數(shù)據(jù)流是怎么一回事夷恍。

3魔眨、使用實(shí)例

  • 父組件中使用v-model

    父組件中

  • 子組件中的model選項(xiàng)就做了前面所說(shuō)的事情:接收到的prop就是text,定義綁定監(jiān)聽的事件名就是onEmitFromChild酿雪。

    子組件中

  • 最后我們就可以看到在組件上實(shí)現(xiàn)了值的綁定

實(shí)例效果.gif
  • 好的遏暴,到了這里我們?yōu)榱思由罾斫馔瑫r(shí)也是為了響應(yīng)開頭,達(dá)到一波首尾呼應(yīng)的強(qiáng)烈文章效果指黎,朋凉,,醋安,在子組件中(父組件不用動(dòng))杂彭,我們注釋掉model選項(xiàng),使用默認(rèn)的方式吓揪,這樣應(yīng)該你能更好的再次理解v-model的本質(zhì)亲怠。(效果跟上面的gif是一樣的)

其實(shí)本質(zhì)上,v-modelv-bind以及v-on配合使用的語(yǔ)法糖柠辞。
默認(rèn)情況下团秽,一個(gè)組件上的 v-model 會(huì)把 value 用作 prop 且把 input 用作 event。

v-model的本質(zhì)

4叭首、其他

  • 其實(shí)在我的理解中习勤,將v-model運(yùn)用在自定義組件中實(shí)現(xiàn)值的雙向綁定,這只不過(guò)是簡(jiǎn)化了單向數(shù)據(jù)流的操作焙格。

  • 但是這種寫法可讀性不好图毕,可能在例如表單組件中可以較好的運(yùn)用這個(gè)特性以外,還是建議寧愿麻煩一點(diǎn)走個(gè)完整的單項(xiàng)數(shù)據(jù)流眷唉,如果狀態(tài)比較多就用vuex吴旋,這樣可能更加直觀损肛,更好維護(hù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末荣瑟,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子摩泪,更是在濱河造成了極大的恐慌笆焰,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件见坑,死亡現(xiàn)場(chǎng)離奇詭異嚷掠,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)荞驴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門不皆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人熊楼,你說(shuō)我怎么就攤上這事霹娄。” “怎么了鲫骗?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵犬耻,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我执泰,道長(zhǎng)枕磁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任术吝,我火速辦了婚禮计济,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘排苍。我一直安慰自己沦寂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布纪岁。 她就那樣靜靜地躺著凑队,像睡著了一般。 火紅的嫁衣襯著肌膚如雪幔翰。 梳的紋絲不亂的頭發(fā)上漩氨,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音遗增,去河邊找鬼叫惊。 笑死,一個(gè)胖子當(dāng)著我的面吹牛做修,可吹牛的內(nèi)容都是我干的霍狰。 我是一名探鬼主播抡草,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蔗坯!你這毒婦竟也來(lái)了康震?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤宾濒,失蹤者是張志新(化名)和其女友劉穎腿短,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绘梦,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡橘忱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了卸奉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钝诚。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖榄棵,靈堂內(nèi)的尸體忽然破棺而出凝颇,到底是詐尸還是另有隱情,我是刑警寧澤秉继,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布祈噪,位于F島的核電站,受9級(jí)特大地震影響尚辑,放射性物質(zhì)發(fā)生泄漏辑鲤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一杠茬、第九天 我趴在偏房一處隱蔽的房頂上張望月褥。 院中可真熱鬧,春花似錦瓢喉、人聲如沸宁赤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)决左。三九已至,卻和暖如春走贪,著一層夾襖步出監(jiān)牢的瞬間佛猛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工坠狡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留继找,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓逃沿,卻偏偏與公主長(zhǎng)得像婴渡,于是被迫代替她去往敵國(guó)和親幻锁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354