vue元件間的幾種通訊方式

2021-09-29 11:09:12 字數 1370 閱讀 8795

1.父 往 子元件上傳遞   props

父元件上寫 

子元件上使用  props接收  在vue例項中加上 

1.   props:   }   2.props:["parent"]
2.子 往父親上傳遞   emit

父元件   

1. 2.在 methods: }
子元件   

1.觸發父元件上的那個child事件     可以在created鉤子函式中定義  this.$emit("child",引數)  

3.兄弟間的傳參

var bus=new vue();//new乙個空的vue例項  可以單獨放在外面作為乙個js檔案

a元件中觸發事件         bus.$emit("data-a",this.name);

b元件中也觸發事件     bus.$emit("getdata",this.age);

c元件接收引數有倆種方式

1.使用匿名函式接收

bus.$on("data-a",name=>);

2.提前定義乙個函式

getdata(age)

bus.$on("getdata",this.getdata.bind(this)); //不過有個坑    你得把這個觸發事件 getdata永久繫結在 c元件什麼上 

4.使用vuex   vuex是vue中資料狀態管理的乙個工具 

vuex實現了乙個單向資料流,在全域性擁有乙個state存放資料,當元件要更改state中的資料時,必須通過mutation進行,mutation同時提供了訂閱者模式供外部外掛程式呼叫獲取state資料的更新。而當所有非同步操作(常見於呼叫後端介面非同步獲取更新資料)或批量的同步操作需要走action,但action也是無法直接修改state的,還是需要通過mutation來修改state的資料。最後,根據state的變化,渲染到檢視上

至於詳細怎麼使用  可以看我之前的那個 vuex那個部落格 這種方法 我就不在 這裡詳細講解了

5.vuex和localstorage配合使用

vuex 是 vue 的狀態管理器,儲存的資料是響應式的。但是並不會儲存起來,重新整理之後就回到了初始狀態,具體做法應該在vuex裡資料改變的時候把資料拷貝乙份儲存到localstorage裡面,重新整理之後,如果localstorage裡有儲存的資料,取出來再替換store裡的state

let defaultcity = "上海"

try

}catch(e){}

export default new vuex.store(,

mutations: catch (e) {}

}}})

vue元件間通訊的幾種方式

方法一 props emit 1 父元件向子元件傳值 父元件中通過v bind繫結需要給子元件傳遞的值,子元件中通過props拿到父元件傳遞的值 username 前者自定義名稱便於子元件呼叫,後者要傳遞資料名 div template import child from components ch...

vue元件間通訊方式

一 props emit 將要傳遞的引數繫結到元件上,子元件通過props接受引數 props 子元件通過事件傳遞給父元件 this emit functionname 值 只適用於父子 二 on emit 無差別轟炸,想隔幾層隔幾層傳 第一步新建js import vue from vue 使用 ...

Vue元件間通訊方式都有哪些

開始之前,我們把元件間通訊這個詞進行拆分 都知道元件是vue最強大的功能之一,vue中每乙個.vue我們都可以視之為乙個元件 通訊指的是傳送者通過某種 以某種格式來傳遞資訊到收信者以達到某個目的。廣義上,任何資訊的交通都是通訊 元件間通訊即指元件 vue 通過某種方式來傳遞資訊以達到某個目的 舉個栗...