溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

uni-app組件通信的方式是什么

發布時間:2022-03-16 17:29:11 來源:億速云 閱讀:384 作者:iii 欄目:web開發

這篇文章主要介紹“uni-app組件通信的方式是什么”,在日常操作中,相信很多人在uni-app組件通信的方式是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”uni-app組件通信的方式是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

uni-app的通信方式和vue小程序是一樣的 但語法上采用了vue的

主要分為 父傳子 : props

子傳父 通過 v-on 簡寫 @

兄弟組件通信 uni.$on

首先是父傳子

父組件

<template>

<view class="content">

        <assembly :name="name"></assembly>

    </view>

</template>

<script>

import text from "/assembly/assembly.vue"

export default {

    data() {

return {

imageurl: [],

name: '子組件定義姓名'

}

},

components:{

  assembly: text

},

}

</script>

然后子組件assembly就可以通過props拿到這個name

代碼如下

<template>

<view>{{ name }}</view>

</template>

<script>

export default {

data() {

return {

}

},

props: ["name"],

created(){

console.log(this.name);

},

}

</script>

這里需要注意 vue中的props是個大對象 而在uni中我們需要用一個 字符串數組來接

然后子傳父的話 需要子組件調用父組件傳遞給自己的事件并傳參

父組件

<template>

<view class="content">

        <assembly :name="name" @getname="getname"></assembly>

    </view>

</template>

<script>

import text from "/assembly/assembly.vue"

export default {

    data() {

return {

imageurl: [],

name: '子組件定義姓名'

}

},

components:{

  assembly: text

},

methods: {

  getname(name){

  console.log(name);

  }

}

}

</script>

此時我們定義了一個getname方法并傳遞給了子組件 并接受一個參數并打印出來

然后我們在子組件中調用他

<template>

<view @click="getname">{{ name }}</view>

</template>

<script>

export default {

data() {

return {

}

},

props: ["name"],

created(){

console.log(this.name);

},

methods: {

getname(){

this.$emit('getname','子組件傳給父組件的值')

}

}

}

</script>

當我們點擊view時 觸發子組件自己的getname 然后在這個方法中調用了父組件傳來的getname方法 并傳遞了參數

然后是兄弟組件傳值

例如我們一個父組件同時引用了 texta 和 textb做自己的子組件

然后我們可以在texta中寫

<template>

<viev>{{ name }}</view>

</template>

<script>

export default {

data() {

return {

name: '初始值'

    }

},

created(){

uni.$on('bingdts',res=>{

this.name = res

})

}

}

</script>

此時我們A組件就定義了一個bingdts方法 然后我們可以通過B組件 去調用這個方法和傳參

textb組件寫法

<template>

<view @click="getname">{{ name }}</view>

</template>

<script>

export default {

data() {

return {

name: "修改兄弟值"

}

},

methods: {

getname(){

uni.$emit('bingdts',111)

}

}

}

</script>

然后你就會發現 textb 的方法觸發調用texta的bingdts 參數就會實現兄弟組件傳值

到此,關于“uni-app組件通信的方式是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女