<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關(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)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        Vue2.0中三種常用傳值方式(父?jìng)髯?、子傳父、非父子組件傳值)

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

        Vue2.0中三種常用傳值方式(父?jìng)髯?、子傳父、非父子組件傳值)

        Vue2.0中三種常用傳值方式(父?jìng)髯?、子傳父、非父子組件傳值):Vue2.0 傳值方式: 在Vue的框架開發(fā)的項(xiàng)目過程中,經(jīng)常會(huì)用到組件來管理不同的功能,有一些公共的組件會(huì)被提取出來。這時(shí)必然會(huì)產(chǎn)生一些疑問和需求?比如一個(gè)組件調(diào)用另一個(gè)組件作為自己的子組件,那么我們?nèi)绾芜M(jìn)行給子組件進(jìn)行傳值呢?如果是電商網(wǎng)站系統(tǒng)的
        推薦度:
        導(dǎo)讀Vue2.0中三種常用傳值方式(父?jìng)髯印⒆觽鞲?、非父子組件傳值):Vue2.0 傳值方式: 在Vue的框架開發(fā)的項(xiàng)目過程中,經(jīng)常會(huì)用到組件來管理不同的功能,有一些公共的組件會(huì)被提取出來。這時(shí)必然會(huì)產(chǎn)生一些疑問和需求?比如一個(gè)組件調(diào)用另一個(gè)組件作為自己的子組件,那么我們?nèi)绾芜M(jìn)行給子組件進(jìn)行傳值呢?如果是電商網(wǎng)站系統(tǒng)的

        Vue2.0 傳值方式:

        在Vue的框架開發(fā)的項(xiàng)目過程中,經(jīng)常會(huì)用到組件來管理不同的功能,有一些公共的組件會(huì)被提取出來。這時(shí)必然會(huì)產(chǎn)生一些疑問和需求?比如一個(gè)組件調(diào)用另一個(gè)組件作為自己的子組件,那么我們?nèi)绾芜M(jìn)行給子組件進(jìn)行傳值呢?如果是電商網(wǎng)站系統(tǒng)的開發(fā),還會(huì)涉及到購(gòu)物車的選項(xiàng),這時(shí)候就會(huì)涉及到非父子組件傳值的情況。當(dāng)然你也可以用Vuex狀態(tài)管理工具來實(shí)現(xiàn),這部分我們后續(xù)會(huì)單獨(dú)介紹。我先給大家介紹Vue開發(fā)中常用的三種傳值方式。

        Vue常用的三種傳值方式有:

        •父?jìng)髯?/p>

        •子傳父

        •非父子傳值

        引用官網(wǎng)的一句話:父子組件的關(guān)系可以總結(jié)為 prop 向下傳遞,事件向上傳遞。父組件通過 prop 給子組件下發(fā)數(shù)據(jù),子組件通過事件給父組件發(fā)送消息,如下圖所示:

        這里寫圖片描述

        接下來,我們通過實(shí)例來看可能會(huì)更明白一些:

        1. 父組件向子組件進(jìn)行傳值

        這里寫圖片描述

        父組件:

        <template>
         <div>
         父組件:
         <input type="text" v-model="name">
         <br>
         <br>
         <!-- 引入子組件 -->
         <child :inputName="name"></child>
         </div>
        </template>
        <script>
         import child from './child'
         export default {
         components: {
         child
         },
         data () {
         return {
         name: ''
         }
         }
         }
        </script>

        子組件:

        <template>
         <div>
         子組件:
         <span>{{inputName}}</span>
         </div>
        </template>
        <script>
         export default {
         // 接受父組件的值
         props: {
         inputName: String,
         required: true
         }
         }
        </script>

        2. 子組件向父組件傳值

        這里寫圖片描述

        子組件:

        <template>
         <div>
         子組件:
         <span>{{childValue}}</span>
         <!-- 定義一個(gè)子組件傳值的方法 -->
         <input type="button" value="點(diǎn)擊觸發(fā)" @click="childClick">
         </div>
        </template>
        <script>
         export default {
         data () {
         return {
         childValue: '我是子組件的數(shù)據(jù)'
         }
         },
         methods: {
         childClick () {
         // childByValue是在父組件on監(jiān)聽的方法
         // 第二個(gè)參數(shù)this.childValue是需要傳的值
         this.$emit('childByValue', this.childValue)
         }
         }
         }
        </script>

        父組件:

        <template>
         <div>
         父組件:
         <span>{{name}}</span>
         <br>
         <br>
         <!-- 引入子組件 定義一個(gè)on的方法監(jiān)聽子組件的狀態(tài)-->
         <child v-on:childByValue="childByValue"></child>
         </div>
        </template>
        <script>
         import child from './child'
         export default {
         components: {
         child
         },
         data () {
         return {
         name: ''
         }
         },
         methods: {
         childByValue: function (childValue) {
         // childValue就是子組件傳過來的值
         this.name = childValue
         }
         }
         }
        </script>

        3. 非父子組件進(jìn)行傳值

        非父子組件之間傳值,需要定義個(gè)公共的公共實(shí)例文件bus.js,作為中間倉(cāng)庫(kù)來傳值,不然路由組件之間達(dá)不到傳值的效果。

        公共bus.js

        //bus.js
        import Vue from 'vue'
        export default new Vue()

        組件A:

        <template>
         <div>
         A組件:
         <span>{{elementValue}}</span>
         <input type="button" value="點(diǎn)擊觸發(fā)" @click="elementByValue">
         </div>
        </template>
        <script>
         // 引入公共的bug,來做為中間傳達(dá)的工具
         import Bus from './bus.js'
         export default {
         data () {
         return {
         elementValue: 4
         }
         },
         methods: {
         elementByValue: function () {
         Bus.$emit('val', this.elementValue)
         }
         }
         }
        </script>

        組件B:

        <template>
         <div>
         B組件:
         <input type="button" value="點(diǎn)擊觸發(fā)" @click="getData">
         <span>{{name}}</span>
         </div>
        </template>
        <script>
         import Bus from './bus.js'
         export default {
         data () {
         return {
         name: 0
         }
         },
         mounted: function () {
         var vm = this
         // 用$on事件來接收參數(shù)
         Bus.$on('val', (data) => {
         console.log(data)
         vm.name = data
         })
         },
         methods: {
         getData: function () {
         this.name++
         }
         }
         }
        </script>

         總結(jié)

        以上所述是小編給大家介紹的Vue2.0中三種常用傳值方式(父?jìng)髯?、子傳父、非父子組件傳值),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

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

        文檔

        Vue2.0中三種常用傳值方式(父?jìng)髯?、子傳父、非父子組件傳值)

        Vue2.0中三種常用傳值方式(父?jìng)髯?、子傳父、非父子組件傳值):Vue2.0 傳值方式: 在Vue的框架開發(fā)的項(xiàng)目過程中,經(jīng)常會(huì)用到組件來管理不同的功能,有一些公共的組件會(huì)被提取出來。這時(shí)必然會(huì)產(chǎn)生一些疑問和需求?比如一個(gè)組件調(diào)用另一個(gè)組件作為自己的子組件,那么我們?nèi)绾芜M(jìn)行給子組件進(jìn)行傳值呢?如果是電商網(wǎng)站系統(tǒng)的
        推薦度:
        標(biāo)簽: VUE 中常用 vue2.0
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲人成影院午夜网站| 亚洲精品无码永久中文字幕| 亚洲av无码一区二区三区观看| 免费观看久久精彩视频| 亚洲午夜日韩高清一区| 色多多www视频在线观看免费| 亚洲精品乱码久久久久久蜜桃| 免费手机在线看片| 久久亚洲国产精品五月天婷| 中文字幕手机在线免费看电影 | 成全动漫视频在线观看免费高清版下载| 亚洲国产精品尤物YW在线观看| 一区二区三区免费视频播放器 | 亚洲av无码专区在线播放| 精品免费视在线观看| 亚洲美女精品视频| 日韩精品福利片午夜免费观着| 中文字幕无码亚洲欧洲日韩| 情侣视频精品免费的国产| 黄色短视频免费看| 亚洲精品自产拍在线观看动漫| 国内精自视频品线六区免费| 亚洲啪AV永久无码精品放毛片| 亚洲?V无码成人精品区日韩| 国产一区二区免费视频| 亚洲国产成人无码av在线播放| 国产一级理论免费版| 免费一区二区无码东京热| 亚洲乱码在线视频| 男人的天堂亚洲一区二区三区| 国产精品日本亚洲777| 亚洲中文字幕无码一久久区| 13一14周岁毛片免费| 亚洲第一se情网站| 亚洲VA中文字幕无码一二三区 | h在线观看视频免费网站| 亚洲av无码成人影院一区| 亚洲AV无码一区东京热| 午夜视频免费观看| 一个人免费视频观看在线www| 亚洲成年网站在线观看|