欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue父子組件傳值的三種方法

 更新時(shí)間:2022年12月20日 15:47:11   作者:Miracle?sir  
這篇文章主要介紹了Vue父子組件傳值的三種方法,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔

前言

例如:Vue的學(xué)習(xí)是路阻且艱的,這是一個(gè)系列文章,幫助vue的新手可以快速上路,創(chuàng)建的自己的項(xiàng)目,該系列文章主要講解作者在vue學(xué)習(xí)之路上,創(chuàng)建項(xiàng)目中最重要的知識(shí),因?yàn)楣P者水平有限,希望大家多多指正,該系列文章旨在讓大家感受vue的便捷,詳細(xì)學(xué)習(xí)vue希望大家多多觀看官方文檔.

一、Vue父子傳值的方法

我們?cè)赩ue項(xiàng)目進(jìn)行父子傳值主要有以下三種方法:
(1) props / $emit
(2) $parent / children
(3) $ref
在觀看方法詳解時(shí)大家先創(chuàng)建一個(gè)父組件parent.vue和一個(gè)子組件child.vue并完成父子組件的注冊(cè)

二、方法詳解

1.props / $emit

?組件中通過定義props接收?組件中通過v-bind綁定的數(shù)據(jù)

父?jìng)髯?/strong>

首先在父組件中定義一個(gè)示例data

import child from './child.vue' 
    export default {
        name:'parent',
        components:{
            child
        },
        data(){
            return{
                parentdata:"This is the first word from parent"
            }
        }
    }

在父組件中使用子組件時(shí)用v-bind定義一個(gè)屬性并將父組件的parentdata傳入

<child :parentdata="parentdata"></child>

在子組件中使用props接收傳入的屬性,并可以直接使用

<template>
    <div>
        {{parentdata}}
    </div>
</template>

<script>
    export default {
        name:"child",
        props:{
            parentdata:{
                type:String,
                default:""
            }
        }
    }
</script>

觀看結(jié)果:

父組件傳入子組件的值就被顯示出來了

子傳父

首先在子組件中定義一個(gè)事件,并且使用emit發(fā)送給父組件,在示例中子組件使用的click事件觸發(fā)發(fā)送自定義事件(sendmsg)

<template>
    <div>
        <button @click="childmsg">點(diǎn)我試試</button>
    </div>
</template>

<script>
    export default {
        name:"child",
        data(){
            return{
                msg:"This is the first word from child"
            }
        },
        methods:{
            childmsg(){
                this.$emit('sendmsg',this.msg)
            }
        }
    }
</script>

emit使用方法
this.$emit(‘自定義事件名’,所需要傳的值)

在父組件中需要定義方法(getmsg)接受自定義事件(sendmsg):

<template>
    <div>
        <child :parentdata="parentdata" @sendmsg="getmsg"></child>
    </div>
</template>

<script>
    import child from './child.vue' 
    export default {
        name:'parent',
        components:{
            child
        },
        methods:{
            getmsg(val){
                console.log(val)
            }
        }
    }
</script>

在定義方法時(shí)直接在函數(shù)中設(shè)置形參接受子組件傳入的值(getmsg(val))
在控制臺(tái)就可以看見打印結(jié)果This is the first word from child

2.$parent / children

在使用這個(gè)方法時(shí),大家可以先在父組件中打印出來$children,幫助大家理解
代碼如下

mounted(){
            console.log(this.$children)
        }

可以看到,子組件被打印出來了

只要找到組件對(duì)象對(duì)應(yīng)的屬性,就可使用

mounted(){
            alert(this.$children[0].msg)
        }

可以看到結(jié)果

注意,這種方法不僅可以調(diào)用數(shù)據(jù),也可以使用子組件的方法!(但不可以直接調(diào)用,這個(gè)接下來的文章再說)

如果是子組件使用父組件的數(shù)據(jù),可以同樣的流程

3.$ref

ref可以讓父組件更加便利地取到想要的子組件,其中原理和第二種方法相同,都是取到組件對(duì)象

在父組件中定義ref

<template>
    <div>
        <child ref="childselected"></child>
    </div>
</template>

在父組件中取值:

mounted(){
            alert(this.$refs.childselected.msg)
        }

可以看到相同的結(jié)果:

總結(jié)

***本篇主要講解了Vue項(xiàng)目中父子組件傳值的三種方法:
props/$emit
子組件通過v-bind接收父組件的值
父組件通過接收emit發(fā)送的事件接收子組件的值
$parent/children
直接獲取組件對(duì)象來取值
$ref
定義屬性名獲取組件對(duì)象值

到此這篇關(guān)于Vue父子組件傳值的文章就介紹到這了,更多相關(guān)Vue父子組件傳值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue-draggable實(shí)現(xiàn)pc端拖拽效果

    vue-draggable實(shí)現(xiàn)pc端拖拽效果

    這篇文章主要為大家詳細(xì)介紹了vue-draggable實(shí)現(xiàn)pc端拖拽效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue2+springsecurity權(quán)限系統(tǒng)的實(shí)現(xiàn)

    vue2+springsecurity權(quán)限系統(tǒng)的實(shí)現(xiàn)

    本文主要介紹了vue2+springsecurity權(quán)限系統(tǒng)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • axios攔截器工作方式及原理源碼解析

    axios攔截器工作方式及原理源碼解析

    這篇文章主要為大家介紹了axios攔截器工作原理源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 詳解vue.js的devtools安裝

    詳解vue.js的devtools安裝

    本篇文章主要介紹了詳解vue.js的devtools安裝 ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • Vue收集依賴與觸發(fā)依賴源碼刨析

    Vue收集依賴與觸發(fā)依賴源碼刨析

    vue對(duì)依賴的管理使用的是發(fā)布訂閱者模式,其中watcher扮演訂閱者,Dep扮演發(fā)布者。所以dep中會(huì)有多個(gè)watcher,一個(gè)訂閱者也可以有多個(gè)發(fā)布者(依賴)??偣踩齻€(gè)過程:定義依賴、收集依賴、觸發(fā)依賴。下面開始詳細(xì)講解三個(gè)過程
    2022-10-10
  • 如何在Vue中使用protobuf

    如何在Vue中使用protobuf

    這篇文章主要介紹了如何在Vue中使用protobuf,protobuf是由google推出的和語言無關(guān)和平臺(tái)無關(guān),幾乎支持當(dāng)前的大部分語言,如JavaScript,下文更多相關(guān)介紹需要的小伙伴可以參考一下
    2022-03-03
  • vue3.0 搭建項(xiàng)目總結(jié)(詳細(xì)步驟)

    vue3.0 搭建項(xiàng)目總結(jié)(詳細(xì)步驟)

    這篇文章主要介紹了vue3.0 搭建項(xiàng)目總結(jié)(詳細(xì)步驟),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • vue項(xiàng)目中在可編輯div光標(biāo)位置插入內(nèi)容的實(shí)現(xiàn)代碼

    vue項(xiàng)目中在可編輯div光標(biāo)位置插入內(nèi)容的實(shí)現(xiàn)代碼

    這篇文章主要介紹了vue項(xiàng)目中在可編輯div光標(biāo)位置插入內(nèi)容的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Vite+TS+Vue開啟eslint和prettier規(guī)范及校驗(yàn)方式

    Vite+TS+Vue開啟eslint和prettier規(guī)范及校驗(yàn)方式

    這篇文章主要介紹了Vite+TS+Vue開啟eslint和prettier規(guī)范及校驗(yàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 探究Vue.js 2.0新增的虛擬DOM

    探究Vue.js 2.0新增的虛擬DOM

    vue.js 2.0大家對(duì)此并不陌生吧。最令人興奮的是更新頁面的"虛擬DOM"的加入。那么對(duì)于虛擬 DOM 可以做什么呢?今天小編通過本文給大家解答下
    2016-10-10

最新評(píng)論