最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Vue從零開(kāi)始總結(jié)27

2021-04-23 18:56 作者:忘魂兒  | 我要投稿

父?jìng)髯樱觽鞣騼蓚€(gè)單獨(dú)的功能我們已經(jīng)實(shí)現(xiàn)了,那么有沒(méi)有發(fā)現(xiàn)一個(gè)問(wèn)題,如果我們?cè)谧咏M件里面動(dòng)態(tài)綁定父組件,并更改它的值,父組件里面的數(shù)據(jù)時(shí)不變的,那么為了解決這個(gè)問(wèn)題,我們先剖析一下解決方案的原理,然后再進(jìn)行簡(jiǎn)化。

第一步:先搞定子組件內(nèi)部數(shù)據(jù)雙向綁定

老樣子,先寫(xiě)模板

<template id="son">
?<div>
? ?<h2>{{sonnum1}}</h2>//父組件傳過(guò)來(lái)的值
? ?<h2>{{sonNum1}}</h2>//子組件內(nèi)部key
? ?<input type="text" :value="sonNum1" @input="inputnum1">
? ?<h2>{{sonnum2}}</h2>//父組件傳過(guò)來(lái)的值

? ?<h2>{{sonNum2}}</h2>//子組件內(nèi)部key

? ?<input type="text" :value="sonNum2" @input="inputnum2">
?</div>
</template>

第二步:確立父子關(guān)系,將父值傳遞給子值,然后再將props傳過(guò)來(lái)的子值,賦初值給子組件的data中相應(yīng)key。

//父

const app=new Vue({
? ?el:document.querySelector('#app'),
? ?data:{

//父組件中的
? ?num1:0,
? ?num2:1
}, components:{

//子
? ? ?cpn:{
? ? ? ?template: '#son',
? ? ? ?data(){

//子組件中的key
? ? ? ? ?return {
? ? ? ? ?sonNum1:this.sonnum1,
? ? ? ? ? ?sonNum2:this.sonnum2
? ? ? ? ?}
? ? ? ?},
? ? ? ?props:{

//接受父組件傳遞過(guò)來(lái)的值
? ? ? ? ?sonnum1:Number,
? ? ? ? ?sonnum2:Number
? ? ? ?},
? ? ? ?methods:{
? ? ? ? ?inputnum1(event){

//通過(guò)input事件,接受動(dòng)態(tài)綁定過(guò)來(lái)的值。注意要保持前后一致,即都是sonNum1
? ? ? ? ?this.sonNum1=event.target.value
? ? ? ? ?}
? ? ? ? ?,
? ? ? ? ?inputnum2(event){
? ? ? ? ?this.sonNum2=event.target.value
? ? ? ? ?}
? ? ? ?}
? ? ?}
?}
})

<div id="app">

//對(duì)應(yīng)接收父組件傳值
<cpn :sonnum1="num1" :sonnum2="num2"></cpn>
</div>

做到這兒效果如下:


第三步:改變的數(shù)據(jù),以事件的形式,通過(guò)子組件里面的函數(shù),發(fā)送給父組件

methods:{
?inputnum1(event){
?this.sonNum1=event.target.value//通過(guò)input事件傳遞過(guò)來(lái)的事件,獲取其動(dòng)態(tài)獲取的value值并賦值給子組件data中的指定變量
? ?this.$emit('sendnum1',this.sonNum1)//將這個(gè)改變了的值,以事件sendnum1發(fā)送給父組件里指定函數(shù)

?}
?,
?inputnum2(event){
?this.sonNum2=event.target.value
? ?this.$emit('sendnum2',this.sonNum2)
?}
}

第四步:在子組件標(biāo)簽行內(nèi)書(shū)寫(xiě)自定義事件,并將這個(gè)事件指定到對(duì)應(yīng)父組件函數(shù)內(nèi)

<div id="app">
<cpn :sonnum1="num1" :sonnum2="num2" @sendnum1="changenum1" @sendnum2="changenum2"></cpn>
</div>

至此實(shí)現(xiàn)了,父子數(shù)據(jù)的相互綁定

效果如下:

通過(guò)input輸入的默認(rèn)為String類(lèi)型

所以為了防止報(bào)錯(cuò),就得進(jìn)行類(lèi)型轉(zhuǎn)換

inputnum1(event){
this.sonNum1=parseInt(event.target.value)
?this.$emit('sendnum1',this.sonNum1)
}
,
inputnum2(event){
this.sonNum2=parseInt(event.target.value)
?this.$emit('sendnum2',this.sonNum2)
}


Vue從零開(kāi)始總結(jié)27的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
梁山县| 峨眉山市| 洛宁县| 商洛市| 蒙自县| 昭平县| 湘阴县| 南昌县| 吉林市| 南城县| 赤峰市| 临洮县| 融水| 西吉县| 莎车县| 嘉义县| 民和| 余姚市| 樟树市| 文化| 封开县| 金山区| 镇原县| 商南县| 花莲县| 祁连县| 长寿区| 金秀| 禄劝| 班戈县| 肥乡县| 鄄城县| 宾川县| 高邑县| 上栗县| 西昌市| 宜君县| 邯郸县| 象山县| 肃南| 西昌市|