Vue元件通訊的四種方式彙總

2022-09-28 03:27:14 字數 2055 閱讀 6234

前言

眾所周知vue是一種mvvm框架,它相對於jquery可能比較大的差異點之一就在於元件之間的通訊了。本文重點是梳理了前兩個,父子元件通訊和eventbus通訊,我覺得vue文件裡的說明還是有一些簡易,我自己第一遍是沒看明白vqnof。

第一種通訊方式:父子元件通訊

父元件向子元件傳遞資料

父元件一共需要做4件事

1.import son from './son.js'引入子元件 son

2.在components : 裡註冊所有子元件名稱

3.在父元件的template應用子元件,

4.如果需要傳遞資料給子元件,就在template模板裡寫

// 1.引入子元件

import counter from './counter'

import son from './son'

// 2.在ccmponents裡註冊子元件

components : ,

// 3.在template裡使用子元件

// 4.如果需要傳遞資料,也是在templete裡寫

子元件只需要做1件事

1.用props接受資料,就可以直接使用資料

2.子元件接受到的資料,不能去修改。如果你的確需要修改,可以用計算屬性,或者程式設計客棧把資料賦值給子元件data裡的乙個變數

// 1.用props接受資料

props: [

'num'

],// 2.如果需要修改得到的資料,可以這樣寫

props: [

'num'

], data ()

},子元件向父元件傳遞資料

父元件一共需要做2件事情

在template裡定義事件

在methods裡寫函式,監聽子元件的事件觸發

// 1. 在templete裡應用子元件時,定義事件changenumber

程式設計客棧mber"

vqnof @changenumber="changenumber"

>

// 2. 用changenumber監聽事件是否觸發

methods: ,

}子元件一共需要1件事情

在資料變化後,用$emit觸發即可

// 1. 子元件在資料變化後,用$emit觸發即可,第二個引數可以傳遞引數

methods: ,

}第二種通訊方式: eventbus

eventbus這種通訊方式,針對的是非父子元件之間的通訊,它的原理還是通過事件的觸發和監聽。

但是因為是非父子元件的關係,他們需要有乙個中間元件來連線。

我是使用的通過在根元件,也就是#app元件上定義了乙個所有元件都可以訪問到的元件,具體使用方式如下

使用eventbus傳遞資料,我們一共需要做3件事情

1.給app元件新增bus屬性 (這樣所有元件都可以通過this.$root.bus訪問到它,而且不需要引入任何檔案)

2.在元件1裡,this.$root.bus.$emit觸發事件

3.在元件2裡,this.$root.bus.$on監聽事件

// 1.在main.js裡給app元件,新增bus屬性

import vue from 'vue'

new vue(,

template: '',

data()

}})// 2.在元件1裡,觸發emit

increment(),

// 3.在元件2裡,監聽事件,接受資料

mounted())

},第三種通訊方式: 利用localstorage或者sessionstorage

這種通訊比較簡單,缺點是資料和狀態比較混亂,不太容易維護。

通過window.localstorage.getitem(key)獲取資料

通過window.localstorage.setitem(key,value)儲存資料

注意:用json.parse() / json.stringify()做資料格式轉換。

第四種通訊方式: 利用vuex

vuex比較複雜,可以單獨寫一篇

總結本文標題: vue元件通訊的四種方式彙總

本文位址:

vue元件的四種寫法

資料驅動和元件化是vue.js兩個最重要的特點。元件化是為了方便 復用,提高開發效率。常見的vue元件寫法有四種,各有特色,適用於不同的場景。結構 元件的註冊 vue.component componentname method 元件其他的屬性和方法 元件的使用 newvue 特點 1 可以直接在h...

vue實戰 vue父子元件通訊方式彙總

vue專案的一大亮點就是元件化。使用元件可以極大地提高專案中 的復用率,減少 量。但是使用元件最大的難點就是父子元件之間的通訊。我是父元件 我是子元件 父元件對我說 子元件使用 emit方法呼叫父元件的方法,達到子通訊父的目的。我是父元件 我是子元件 父元件對我說 父元件通過 refs呼叫子元件的方...

Mysql的四種通訊方式

老方式,先練一下審美 tcp ip套接字連線方式是mysql在任何平台都提供的一種連線方式,也是網路中使用最多的一種方式。那麼他們是怎麼連線上的嘞?假設我有兩台伺服器分別部署mysql資料庫客戶端 192.168.0.1 和mysql資料庫例項 192.168.0.2 兩者需要進行通訊,需要建立tc...