最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue 兄弟組件通信的方法(不使用Vuex)

 更新時(shí)間:2017年10月26日 14:18:08   作者:Pany丨  
本篇文章主要介紹了Vue 兄弟組件通信的方法(不使用Vuex),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

項(xiàng)目中,我們經(jīng)常會(huì)遇到兄弟組件通信的情況。在大型項(xiàng)目中我們可以通過(guò)引入vuex輕松管理各組件之間通信問(wèn)題,但在一些小型的項(xiàng)目中,我們就沒(méi)有必要去引入vuex。下面簡(jiǎn)單介紹一下使用傳統(tǒng)方法,實(shí)現(xiàn)父子組件通信的方法。

簡(jiǎn)單實(shí)例:我們?cè)赼組件中點(diǎn)擊按鈕,將信息傳給b組件,從而使b組件彈出。

主要的思路就是:先子傳父,在父?jìng)髯?/strong>

首先我們?cè)?a.vue 組件中 ,給按鈕botton綁定一個(gè)handleClick事件,事件中我們通過(guò) this.$emit() 方法去觸發(fā)一個(gè)自定義事件,并傳遞我們的參數(shù)。

示例中我們通過(guò)this.$emit() 去觸發(fā)isLogFn 這個(gè)方法自定義事件,并將log 參數(shù)傳遞出去

a.vue

<template>
 <div class="adiv">
 <p>a組件</p>
 <button type="button" v-on:click="handleClick">點(diǎn)擊打開(kāi)組件b彈窗</button>
 </div>
</template>

<script>

export default {
 methods: {
 handleClick () {
  this.$emit('isLogFn','log')
 }
 }
}
</script>

<style>
.adiv{
 width: 400px;
 height: 200px;
 border: 1px solid #000;
 margin: 0 auto;
}
</style>

第二步,我們要在父組件中去監(jiān)聽(tīng)這個(gè)自定義事件,去觸發(fā)對(duì)應(yīng)的方法,并接受a組件傳過(guò)來(lái)的參數(shù)。此時(shí)我們就完成了子組件向父組件傳值的過(guò)程。

示例中,<aPage @isLogFn = "lisLogFn"></aPage> 監(jiān)聽(tīng)isLogFn 去觸發(fā)我們?cè)诟附M件中定義的方法lisLogFn,并拿到傳過(guò)來(lái)的 ‘log' 數(shù)據(jù)。完成子父?jìng)髦怠?/p>

到此,整個(gè)過(guò)程還沒(méi)有結(jié)束,只是完成了一半。接下來(lái)我們要完成父子組件傳值,將a組件的信息在傳給b組件。

在< bPage > 標(biāo)簽中綁定islog 屬性,動(dòng)態(tài)綁定data中的login 字段,在我們通過(guò)lisLogFn 方法拿到 ‘data'之后,我們要判斷 data 傳過(guò)來(lái)的數(shù)據(jù),根據(jù)判斷結(jié)果去改變data()中的數(shù)據(jù),從而將數(shù)據(jù)傳遞給b組件

App.vue

<template>
 <div id="app">
 <aPage @isLogFn = "lisLogFn"></aPage>
 <bPage :isLog = "login"></bPage>
 </div>
</template>

<script>

import aPage from './components/a.vue'
import bPage from './components/b.vue'

export default {
 data () {
 return {
  login: 'false'
 }
 },
 name: 'app',
 components: {
 aPage,
 bPage
 },
 methods: {
 lisLogFn (data) {
  if (data == 'log') {
  this.login = 'true'
  }
 }
 }
}
</script>

<style>
</style>

最后,b組件中需要?jiǎng)?chuàng)建props,定義一個(gè)isLog 屬性,這個(gè)屬性就是我們傳過(guò)來(lái)的數(shù)值。然后我們?cè)谟?jì)算屬性中處理這個(gè)數(shù)據(jù),最終供b組件使用。示例中,我們?cè)趘-show="isLogin" 中用來(lái)控制彈窗是否打開(kāi)。

切記!不能直接使用這個(gè)props,一定要經(jīng)過(guò)computed處理,原因我引用vue官方說(shuō)明

單向數(shù)據(jù)流

b.vue

<template>
 <div class="bdiv" v-show="isLogin">我是組件B彈窗</div>
</template>

<script>
export default {
 props: ['isLog'],
 data () {
 return {

 }
 },
 computed: {
 isLogin () {
  if(this.isLog == 'true'){
  return true
  } else {
  return false
  }
 }
 }
}
</script>

<style>
 .bdiv{
 width: 200px;
 height: 200px;
 border: 1px #000 solid;
 margin: 0 auto;
 }

</style>

總結(jié): 想要實(shí)現(xiàn)兄弟組件傳值,一定要首先熟悉子父,父子之間的傳值。

子父:

  1. 子組件中需要以某種方式例如點(diǎn)擊事件的方法來(lái)觸發(fā)一個(gè)自定義事件
  2. 將需要傳的值作為$emit的第二個(gè)參數(shù),該值將作為實(shí)參傳給響應(yīng)自定義事件的方法
  3. 在父組件中注冊(cè)子組件并在子組件標(biāo)簽上綁定對(duì)自定義事件的監(jiān)聽(tīng)

父子:

  1. 子組件在props中創(chuàng)建一個(gè)屬性,用以接收父組件傳過(guò)來(lái)的值
  2. 在子組件標(biāo)簽中添加子組件props中創(chuàng)建的屬性,把需要傳給子組件的值賦給該屬性

文中示例 github 地址:https://github.com/enjoy-pany/vue-emit

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue調(diào)用PC攝像頭實(shí)現(xiàn)拍照功能

    Vue調(diào)用PC攝像頭實(shí)現(xiàn)拍照功能

    這篇文章主要為大家詳細(xì)介紹了Vue調(diào)用PC攝像頭實(shí)現(xiàn)拍照功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Vue+penlayers實(shí)現(xiàn)多邊形繪制及展示

    Vue+penlayers實(shí)現(xiàn)多邊形繪制及展示

    這篇文章主要為大家詳細(xì)介紹了Vue+penlayers實(shí)現(xiàn)多邊形繪制及展示,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • Vue實(shí)現(xiàn)滑動(dòng)拼圖驗(yàn)證碼功能

    Vue實(shí)現(xiàn)滑動(dòng)拼圖驗(yàn)證碼功能

    這篇文章主要介紹了Vue實(shí)現(xiàn)滑動(dòng)拼圖驗(yàn)證碼功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • vue3生命周期原理與生命周期函數(shù)簡(jiǎn)單應(yīng)用實(shí)例分析

    vue3生命周期原理與生命周期函數(shù)簡(jiǎn)單應(yīng)用實(shí)例分析

    這篇文章主要介紹了vue3生命周期原理與生命周期函數(shù),結(jié)合簡(jiǎn)單實(shí)例形式分析了vue3的生命周期基本原理、以及各個(gè)階段的生命周期鉤子函數(shù)功能、使用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2023-04-04
  • vue隨機(jī)驗(yàn)證碼組件的封裝實(shí)現(xiàn)

    vue隨機(jī)驗(yàn)證碼組件的封裝實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了如何封裝一個(gè)隨機(jī)驗(yàn)證碼的VUE組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • vue3自定義指令看完這篇就入門了

    vue3自定義指令看完這篇就入門了

    不同于vue2不需要被use使用,vue3的機(jī)制是你的指令必須要被注冊(cè)成方法的,這樣你才能全局使用到自定義指令,下面這篇文章主要給大家介紹了關(guān)于vue3自定義指令的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 不能通過(guò)IP地址訪問(wèn)VUE項(xiàng)目的問(wèn)題及解決

    不能通過(guò)IP地址訪問(wèn)VUE項(xiàng)目的問(wèn)題及解決

    這篇文章主要介紹了不能通過(guò)IP地址訪問(wèn)VUE項(xiàng)目的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue如何實(shí)現(xiàn)無(wú)縫輪播圖

    vue如何實(shí)現(xiàn)無(wú)縫輪播圖

    這篇文章主要介紹了vue如何實(shí)現(xiàn)無(wú)縫輪播圖,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue項(xiàng)目中圖片懶加載時(shí)出現(xiàn)的問(wèn)題及解決

    vue項(xiàng)目中圖片懶加載時(shí)出現(xiàn)的問(wèn)題及解決

    這篇文章主要介紹了vue項(xiàng)目中圖片懶加載時(shí)出現(xiàn)的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue 內(nèi)置組件keep-alive的使用示例

    Vue 內(nèi)置組件keep-alive的使用示例

    這篇文章主要介紹了Vue 內(nèi)置組件keep-alive的使用示例,幫助大家更好的理解和學(xué)習(xí)使用vue,感興趣的朋友可以了解下
    2021-04-04

最新評(píng)論

宁津县| 饶阳县| 无锡市| 贺州市| 普安县| 灵川县| 平湖市| 东明县| 靖远县| 马关县| 卢湾区| 兴业县| 万州区| 顺平县| 博客| 鞍山市| 阜南县| 金门县| 潮安县| 项城市| 壶关县| 达州市| 昆明市| 射阳县| 马关县| 江山市| 巩留县| 垦利县| 葵青区| 北海市| 康马县| 南和县| 江孜县| 中阳县| 兴文县| 嘉荫县| 康平县| 神木县| 清河县| 保山市| 长海县|