Vue通訊+Vuex

第一種 父->子

 主要通過props實(shí)現(xiàn)父?jìng)髯?
 具體實(shí)現(xiàn):

   1.先有兩個(gè)組件扔亥,父:A.vue, 子:B.vue,并將b.vue引入A.vue并注冊(cè)
   2.在A.vue組件template中使用B.vue工給B.vue綁定傳遞的屬性
           例如:
        <test-com :sub="title"></test-com>

      其中sub表示要傳遞給子組件的屬性,并且sub前要加冒號(hào)(:)
    3.在B.vue中通過props接收sub屬性
        export default {
           props:['sub'],
           .....
        
        }
          
 注: 也可以對(duì)父級(jí)傳過來的數(shù)據(jù)類型做驗(yàn)證,例如:
         props:{
             sub:{
               type:Number,
               default:0
             }
       }

第二種 子->父

通過$emit來傳遞

 格式: this.$emit('要派發(fā)的自定義事件',要傳遞的數(shù)據(jù));

 步驟:

    首先:在子組件綁定一個(gè)事件震嫉,觸發(fā)一個(gè)方法,在方法內(nèi)部派發(fā)一個(gè)派發(fā)自定義事件牡属,例如:
    
    html部分:
     <button @click="say">向父組件發(fā)送數(shù)據(jù)</button>
     
    js部分:
     methods:{
         say() {
            this.$emit('goup',this.num);
         }
       }

   其次:在父組件使用的子組件中@監(jiān)聽自定義事件票堵,例如:
       html部分:
            <test-com :sub="title" @goup="getdata"></test-com>

        js部分:
            getdata(res) {
                   // console.log(res);
                   this.msg=res;
                }
              
        }


  注意:父?jìng)鹘o子級(jí)的數(shù)據(jù),那子級(jí)能否把父級(jí)傳過來的數(shù)據(jù)改變呢逮栅,可以通過添加.sync屬性悴势,即

      在父組件中:
      <test-com :sub.sync="title" @goup="getdata"></test-com
          在子組件中:
         methods:{
             say() {
                this.$emit("update:sub","我是子級(jí)數(shù)據(jù)hello world");
             }
           }

js數(shù)據(jù)類型

 ES6 引入了一種新的原始數(shù)據(jù)類型Symbol窗宇,表示獨(dú)一無二的值。它是 JavaScript 語言的第七種數(shù)據(jù)類型特纤,前六種是:undefined军俊、null、布爾值(Boolean)捧存、字符串(String)粪躬、數(shù)值(Number)、對(duì)象(Object)昔穴。



第三種 兄弟->兄弟(即非父子)

1镰官、global Bus:主要利用創(chuàng)建一個(gè)空vue做為橋梁,實(shí)現(xiàn)兄弟之間通訊

第一步:創(chuàng)建兩個(gè)A,B兄弟組件和一個(gè)bus.js

bus.js文件:
```
import Vue from 'vue'
//創(chuàng)建空的vue
var bus = new Vue()
```

第二步:分別在A,B兩個(gè)兄弟組件中引入bus.js

import bus from '@/components/common/bus'

第三步:在A組件觸發(fā)一個(gè)事件吗货,在事件方法中派發(fā)睚定義事件泳唠,并發(fā)送傳遞給B組件的數(shù)據(jù),例如A->B

A組件代碼中:

 html部分:
      <button @click="go">將發(fā)送給B組件</button>
 js部分:
      export default {
        data() {
            return {
                info:'500萬'
            }
        },
        methods:{
            go() {
              bus.$emit('tob',this.info);  
            }
        }
    
    }

B組件代碼中:在B組件中的生命周期中接收A組件發(fā)過來的數(shù)據(jù)

     created() {
        bus.$on('tob',(res)=>{
          this.msg=res;
         
        })
    }

2、vuex

(一)vuex是什么宙搬?Vuex 是一個(gè)專為 Vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式
(二)適用場(chǎng)景笨腥?構(gòu)建是一個(gè)中大型單頁應(yīng)用
(三)優(yōu)缺點(diǎn):
優(yōu)點(diǎn):采用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài)
缺點(diǎn):如果開發(fā)小型單頁應(yīng)用,使用 Vuex 可能是繁瑣冗余
(四)其他方案:如果開發(fā)小型單頁應(yīng)用勇垛,一個(gè)簡(jiǎn)單的 global event bus 就足夠您所需了
(五)說一下如何實(shí)現(xiàn)脖母?要么說代碼,要么說思路

   第一步:安裝vuex
        npm install vuex --save

   第二步:創(chuàng)建一個(gè)store目錄闲孤,并在內(nèi)部創(chuàng)建一個(gè)index.js

     // 在index.js引入下面內(nèi)容:
        import Vue from 'vue'
        import Vuex from 'vuex'
        
        Vue.use(Vuex);

      //創(chuàng)建存儲(chǔ)數(shù)據(jù)的倉(cāng)庫(kù)state,集中管理數(shù)據(jù)
        const state={
             msg:"1509A"
        }
        
     //actions中的方法,這里面的方法都是異步操作
        const actions={
             setValue(context,res) {
                // console.log(res);
                context.commit('setData',res);
             }
        
        }

    //創(chuàng)建mutations镶奉,目的是能最終改變倉(cāng)庫(kù)中的數(shù)據(jù),這里是同步操作
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末崭放,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鸽凶,更是在濱河造成了極大的恐慌币砂,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件玻侥,死亡現(xiàn)場(chǎng)離奇詭異决摧,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)凑兰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門掌桩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人姑食,你說我怎么就攤上這事波岛。” “怎么了音半?”我有些...
    開封第一講書人閱讀 167,834評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵则拷,是天一觀的道長(zhǎng)贡蓖。 經(jīng)常有香客問我,道長(zhǎng)煌茬,這世上最難降的妖魔是什么斥铺? 我笑而不...
    開封第一講書人閱讀 59,543評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮坛善,結(jié)果婚禮上晾蜘,老公的妹妹穿的比我還像新娘。我一直安慰自己眠屎,他們只是感情好剔交,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著组力,像睡著了一般省容。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上燎字,一...
    開封第一講書人閱讀 52,196評(píng)論 1 308
  • 那天腥椒,我揣著相機(jī)與錄音,去河邊找鬼候衍。 笑死笼蛛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蛉鹿。 我是一名探鬼主播滨砍,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼妖异!你這毒婦竟也來了惋戏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,671評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤他膳,失蹤者是張志新(化名)和其女友劉穎响逢,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體棕孙,經(jīng)...
    沈念sama閱讀 46,221評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡舔亭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蟀俊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钦铺。...
    茶點(diǎn)故事閱讀 40,444評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖肢预,靈堂內(nèi)的尸體忽然破棺而出矛洞,到底是詐尸還是另有隱情,我是刑警寧澤误甚,帶...
    沈念sama閱讀 36,134評(píng)論 5 350
  • 正文 年R本政府宣布缚甩,位于F島的核電站谱净,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏擅威。R本人自食惡果不足惜壕探,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望郊丛。 院中可真熱鬧李请,春花似錦、人聲如沸厉熟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽揍瑟。三九已至白翻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绢片,已是汗流浹背滤馍。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留底循,地道東北人巢株。 一個(gè)月前我還...
    沈念sama閱讀 48,837評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像熙涤,于是被迫代替她去往敵國(guó)和親阁苞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容