<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        vue中各組件之間傳遞數據的方法示例

        來源:懂視網 責編:小采 時間:2020-11-27 22:34:06
        文檔

        vue中各組件之間傳遞數據的方法示例

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

        前言

        本文主要給大家介紹了關于vue組件之間傳遞數據的相關資料,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹:

        作用域

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

        下面幾種方法可以實現組件之間數據的傳遞。

        一、通過prop傳遞數據

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

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

        具體看下面的代碼:

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

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

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

        二、通過自定義事件

        自定義事件可以實現子組件向父組件傳遞數據,具體方法如下:

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

        2)在父組件中$on(eventName,callback)監聽事件,接受數據作為回調函數的參數,并執行回調函數。

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

        <div id="app">
        {{number}}
        <!-- 在用到子組件的地方監聽,監聽當前實例上的自定義事件 ,接受參數,并執行回調-->
        <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);//觸發當前實例上的事件。多個參數可以數組的形式傳遞
         }
        }
        });
        
        //創建vue實例
        const vm=new Vue({
        el:"#app",
        data:{
         number:""
        },
        methods:{
         totlcli:function(num){//這個回調在父組件監聽到事件時,執行的,其參數為觸發事件時傳遞的。
         return this.number=num;
         },
        },
        });

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

        三、使用slot分發內容

        主要應用場景是,混合父組件的內容與子組件自己的模板時用到。具體使用步驟:

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

        2)在父組件中,使用slot屬性,用于標記往哪個slot中插入子組件內容。

        當name相同時,響應的內容就會被插入到子組件中去
        具體看下面的例子:

        <div id="app">
         <my-item>
         <p slot="header">這是頭部</p>
         <p>這是多余的內容,</p>
         <p slot="footer">這是尾部</p>
         </my-item>
        </div>
        
        Vue.component("my-item",{
         template:"<div>"+
         "<header><slot name='header'></slot></header>"+
         "<main><slot>備用插槽,當沒有備用內容會顯示出來</slot></main>"+
         "<footer><slot name='footer'></slot></footer>"+
         "<div>",
         props:{
         },
         data:function(){
         return { 
         }
         }
         });
         const vm=new Vue({
         el:"#app",
         data:{
         },
         methods:{ 
         },
         });

        渲染結構如下:

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

        總結

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

        文檔

        vue中各組件之間傳遞數據的方法示例

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

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 久久久久免费看黄A片APP | 国产精品亚洲专区在线播放| 成人爽a毛片免费| 亚洲国产精品成人AV无码久久综合影院 | 亚洲人成色777777精品| 24小时免费看片| 在线观看亚洲一区二区| 无码人妻丰满熟妇区免费| 亚洲AV日韩精品久久久久久久| a级在线免费观看| 亚洲级αV无码毛片久久精品| 国产V片在线播放免费无码| 国产亚洲精品免费视频播放| 亚洲免费日韩无码系列| 久久亚洲高清观看| 91精品啪在线观看国产线免费| 亚洲国产精品第一区二区| 69影院毛片免费观看视频在线| 亚洲午夜视频在线观看| 免费看又黄又无码的网站| 亚洲欧洲精品视频在线观看| 免费黄色网址网站| 亚洲精品GV天堂无码男同| 免费看一级做a爰片久久| 一级一看免费完整版毛片| 亚洲国产AV无码专区亚洲AV| 57pao一国产成视频永久免费| 亚洲国产片在线观看| 国产综合精品久久亚洲| 成人自慰女黄网站免费大全| 亚洲av无码潮喷在线观看 | 18女人腿打开无遮掩免费| 亚洲人成在线免费观看| 四只虎免费永久观看| 你懂的网址免费国产| 亚洲无成人网77777| 国产成人精品男人免费| 美女无遮挡拍拍拍免费视频 | 中美日韩在线网免费毛片视频| 国产成人A人亚洲精品无码| 国产h视频在线观看免费|