国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

vue中各組件之間傳遞數(shù)據(jù)的方法示例

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:34:06
文檔

vue中各組件之間傳遞數(shù)據(jù)的方法示例

vue中各組件之間傳遞數(shù)據(jù)的方法示例:前言 本文主要給大家介紹了關(guān)于vue組件之間傳遞數(shù)據(jù)的相關(guān)資料,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹: 作用域 在vue中,組件實例的作用域是孤立的,父組件模板的內(nèi)容在父組件作用域內(nèi)編譯;子組件模板的內(nèi)容在子組件作用域內(nèi)編譯
推薦度:
導(dǎo)讀vue中各組件之間傳遞數(shù)據(jù)的方法示例:前言 本文主要給大家介紹了關(guān)于vue組件之間傳遞數(shù)據(jù)的相關(guān)資料,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹: 作用域 在vue中,組件實例的作用域是孤立的,父組件模板的內(nèi)容在父組件作用域內(nèi)編譯;子組件模板的內(nèi)容在子組件作用域內(nèi)編譯

前言

本文主要給大家介紹了關(guān)于vue組件之間傳遞數(shù)據(jù)的相關(guān)資料,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹:

作用域

在vue中,組件實例的作用域是孤立的,父組件模板的內(nèi)容在父組件作用域內(nèi)編譯;子組件模板的內(nèi)容在子組件作用域內(nèi)編譯。這意味著不能 (也不應(yīng)該) 在子組件的模板內(nèi)直接引用父組件的數(shù)據(jù)。

下面幾種方法可以實現(xiàn)組件之間數(shù)據(jù)的傳遞。

一、通過prop傳遞數(shù)據(jù)

1)在子組件中,使用prop屬性,顯示的表明,它所需要的數(shù)據(jù)。

2)在父組件中,需要引用子組件的地方,傳入數(shù)據(jù)。

具體看下面的代碼:

<div id="app">
<my-item :value="value">//傳入數(shù)據(jù),注意引號里面的為父組件的數(shù)據(jù),
</my-item>
</div> 
Vue.component("my-item",{
 template:"<div>這是組件,{{value}}</div>",
 props:["value"],//聲明需要的數(shù)據(jù),HTML 特性是不區(qū)分大小寫的,所以此處如果為駝峰命名法,如:myMessage,則在模板中需要轉(zhuǎn)化為用斷線隔開的形式:my-Message
 data:function(){
 return {

 }
 },
 methods:{
 
 }
});

//創(chuàng)建vue實例
const vm=new Vue({
 el:"#app",
 data:{
 value:"這是父組件的數(shù)據(jù)",
 },
 methods:{
 
 },
});

這種方法適合父組件向子組件傳遞數(shù)據(jù),可以記為:你先告訴我要什么,然后我給你什么。

注意:這種方式是單向數(shù)據(jù)流,當(dāng)父組件的屬性變化時,將傳導(dǎo)給子組件,但是不會反過來。當(dāng)你想改變prop中數(shù)據(jù)時,可采用如下方法:定義一個局部變量,并用 prop 的值初始化它,或者使用計算屬性。

二、通過自定義事件

自定義事件可以實現(xiàn)子組件向父組件傳遞數(shù)據(jù),具體方法如下:

1)在子組件中使用$emit(eventName,[...args])觸發(fā)事件,傳遞數(shù)據(jù)

2)在父組件中$on(eventName,callback)監(jiān)聽事件,接受數(shù)據(jù)作為回調(diào)函數(shù)的參數(shù),并執(zhí)行回調(diào)函數(shù)。

其實這種方法和angular中控制器之間傳遞數(shù)據(jù)的有點類似的。注意觸發(fā)和監(jiān)聽事件的事件類型必須要保持一致,才可接受導(dǎo)數(shù)據(jù)。具體看下面的例子:

<div id="app">
{{number}}
<!-- 在用到子組件的地方監(jiān)聽,監(jiān)聽當(dāng)前實例上的自定義事件 ,接受參數(shù),并執(zhí)行回調(diào)-->
<my-item v-on:cli="totlcli">
</my-item>
</div>

Vue.component("my-item",{
template:"<button v-on:click='add'>{{count}}</button>",
data:function(){
 return {
 count : 0,
 }
},
methods:{
 add:function(){
 this.count+=1;
 this.$emit("cli",this.count);//觸發(fā)當(dāng)前實例上的事件。多個參數(shù)可以數(shù)組的形式傳遞
 }
}
});

//創(chuàng)建vue實例
const vm=new Vue({
el:"#app",
data:{
 number:""
},
methods:{
 totlcli:function(num){//這個回調(diào)在父組件監(jiān)聽到事件時,執(zhí)行的,其參數(shù)為觸發(fā)事件時傳遞的。
 return this.number=num;
 },
},
});

這樣就可以把子組件中的數(shù)據(jù)通過自定義事件的方式傳到了父組件。

三、使用slot分發(fā)內(nèi)容

主要應(yīng)用場景是,混合父組件的內(nèi)容與子組件自己的模板時用到。具體使用步驟:

1)在子組件中,使用slot標(biāo)簽作為組件模板之中的內(nèi)容分發(fā)插槽。 <slot> 元素自身將被替換。

2)在父組件中,使用slot屬性,用于標(biāo)記往哪個slot中插入子組件內(nèi)容。

當(dāng)name相同時,響應(yīng)的內(nèi)容就會被插入到子組件中去
具體看下面的例子:

<div id="app">
 <my-item>
 <p slot="header">這是頭部</p>
 <p>這是多余的內(nèi)容,</p>
 <p slot="footer">這是尾部</p>
 </my-item>
</div>

Vue.component("my-item",{
 template:"<div>"+
 "<header><slot name='header'></slot></header>"+
 "<main><slot>備用插槽,當(dāng)沒有備用內(nèi)容會顯示出來</slot></main>"+
 "<footer><slot name='footer'></slot></footer>"+
 "<div>",
 props:{
 },
 data:function(){
 return { 
 }
 }
 });
 const vm=new Vue({
 el:"#app",
 data:{
 },
 methods:{ 
 },
 });

渲染結(jié)構(gòu)如下:

注意:匿名(沒用name屬性)的slot元素,作為找不到匹配的內(nèi)容片段的備用插槽,即在父組件中沒有使用slot屬性的內(nèi)容會在這個備用插槽顯示。如果沒有默認(rèn)的 slot,這些找不到匹配的內(nèi)容片段將被拋棄。

總結(jié)

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

vue中各組件之間傳遞數(shù)據(jù)的方法示例

vue中各組件之間傳遞數(shù)據(jù)的方法示例:前言 本文主要給大家介紹了關(guān)于vue組件之間傳遞數(shù)據(jù)的相關(guān)資料,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹: 作用域 在vue中,組件實例的作用域是孤立的,父組件模板的內(nèi)容在父組件作用域內(nèi)編譯;子組件模板的內(nèi)容在子組件作用域內(nèi)編譯
推薦度:
標(biāo)簽: 數(shù)據(jù) VUE 的方法
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 精品国产电影在线看免费观看 | 日本成人一区 | 精品国产亚洲一区二区三区 | 亚洲激情影院 | 欧美激情综合 | 在线免费观看国产精品 | 国产精品一区二区手机在线观看 | 国产成人久久精品二区三区牛 | 日韩欧美小视频 | 国产欧美日韩视频在线观看 | 国产精品人成 | 亚洲精品在线免费观看 | 国产在线欧美日韩一区二区 | 亚洲精品一线二线三线 | 欧美影欧美影院免费观看视频 | 国产欧美一区二区三区鸳鸯浴 | 国产精品合集一区二区三区 | 亚洲精品乱码久久久久久 | 精品国产欧美一区二区三区成人 | 日本一区二区三区免费看 | 国内精品视频一区二区三区 | 丁香六月久久 | 欧美视频一区二区在线观看 | 精品日韩视频 | 99精品国产免费久久国语 | 国产成人精品久久 | 日韩视频高清 | 欧美极品尤物在线播放一级 | 日韩经典第一页 | 一级片a | 日韩午夜视频在线观看 | 精品免费久久久久国产一区 | 国产欧美一区二区三区精品 | 91av久久| 亚洲美女一区二区三区 | 亚洲页码 | 国产v欧美v日韩在线观看 | 99国产精品高清一区二区二区 | 欧美日韩国产三级 | 精品欧美一区手机在线观看 | 美女视频黄全免费的 |