1. 程式人生 > >vue元件間通訊

vue元件間通訊

隨著vue等框架盛行,元件開發已然成為一種趨勢,元件開發中我們經常遇到的就是父子元件通訊了。下面簡單介紹下vue中父子元件如何通訊:

一、使用props傳遞資料

元件例項的作用域是孤立的。這意味著不能 (也不應該) 在子元件的模板內直接引用父元件的資料。要讓子元件使用父元件的資料,我們需要通過子元件的 props 選項。
子元件要顯式地用 props 選項宣告它期待獲得的資料:

<template>
  <input class="el-input-money" :value="currentValue" @blur="handleBlur" @focus="handleFocus"
@input="handleInput" @change.native='true' :disabled="disabled" :size="size" :max="max" :min="min" :decimalPlaces="decimalPlaces" :placeholder="placeholder" ref="input">
</input> </template> <script> export default { props: { max: { type: [Number, Function], default
: Infinity, }, min: { type: [Number, Function], default: -Infinity, }, value: { type: [Number, String], default: '0.00', }, decimalPlaces: { type: Number, default: 2, }, placeholder: String, disabled: Boolean, size: String, } } }
</script>

父元件中我們可以這樣向如上子元件傳遞資料

<v-moneyInput v-model='hwData.A3' :decimalPlaces="4" ref='A3'></v-moneyInput>

這樣我們就將4傳遞到子元件中了。

二、事件通訊

還有一種常用的通訊手段便是通過事件了。
1、子元件通知父元件
- 使用 on(eventName)使emit(eventName) 觸發事件
在子元件中,我們可以通過emiton來監聽。
比如在子元件某個方法中:

this.$emit('deleteFileEvt',fileKey);

在父元件中:

<v-fileupload :params='item' @completeUploadEvt='saveFbzlxxWithoutImageData' @deleteFileEvt='deleteFile' :useDefaultTitle='false' :uploadAddr="'/api/dzzl/upload?filepath=/'" :ref='item.fbzl_dm'></v-fileupload>

可以看到我們用@deleteFileEvt=’deleteFile’監聽了deleteFileEvt事件,deleteFile函式處理:

deleteFile(fileKey) {
      let self = this;
      this.saveFileArr.map((index, item) => {
        if (item == fileKey) {
          self.saveFileArr.splice(index, 1);
          return false;
        }
      })
    }

2、父元件呼叫子元件方法
說完了子元件通知父元件,自然也有父元件需要呼叫子元件方法的時候:

<v-moneyInput v-model='hwData.A2' ref='A2'></v-moneyInput>

如上是父元件中的子元件,通過給一個ref屬性,然後我們可以在父元件的方法中通過this.refs.A2.childMethod()呼叫子元件的childMethod方法。

三、非父子元件通訊

非父子元件通訊的需求我們可能也會遇到,但我還沒遇到過。可以參考vue官網非父子元件通訊
還有一種通訊手段就是我們的vuex
vuex的用法請參考官網vuex

相關推薦

vue - 元件通訊2

父元件--> 子元件 1. 屬性設定 父元件關鍵程式碼如下: <template> <Child :child-msg="msg"></Child> </template> 子元件關鍵程式碼如下: export de

vue-元件通訊

1、在vue中父元件是通過props傳遞資料給子元件 <child-component :prop1="父元件的資料1" :prop2="父元件的資料2"></child-component> 子元件只接受在子元件中定義過的props的值, V

vue 元件通訊 PubSub 釋出訂閱

很長一段時間在vue開發專案中元件間通訊都是通過vuex實現的,有時候開發一個小專案也要用到插入笨重的vuex來實現元件間互動,有沒有一個好的外掛可以替代vuex,emmmm~,當然有了!今天給大家介紹一下PubSubJS,PubSubJS是什麼?可以實現什麼功能?看下面的例子實現關閉彈窗m

vue元件通訊用例

父元件傳值給子元件 -- 以封裝公用slide元件為例 父元件 <template> <section class="banner"> <slide :imgList="imgList" :options="swiperOption" width="100%" h

Vue元件通訊2--Vue自定義事件

自定義事件方式一(常用) 1、給TodoHeader標籤物件繫結addTodo事件監聽 2、觸發自定義事件:addTodo  自定義事件方式二 1、給<TodoHeader>繫結addTodo事件監聽 2、觸發自定義事件:addTodo

vue元件通訊

隨著vue等框架盛行,元件開發已然成為一種趨勢,元件開發中我們經常遇到的就是父子元件通訊了。下面簡單介紹下vue中父子元件如何通訊: 一、使用props傳遞資料 元件例項的作用域是孤立的。這意味著不能 (也不應該) 在子元件的模板內直接引用父元件的資料。

Vue元件通訊4--訊息訂閱與釋出

安裝pubsub-js npm install pubsub-js --save 優點:可以進行任意元件間的資訊傳遞。 1、釋出訊息   PubSub.publish('msg', data) 下面的例子中,msg為‘type’ , data為communicate

Vue元件通訊6種方式

摘要: 總有一款合適的通訊方式。 作者:浪裡行舟 Fundebug經授權轉載,版權歸原作者所有。 前言 元件是 vue.js

Vue元件通訊-Vuex

  上回說到Vue元件間通訊,最後留了一個彩蛋~~~Vuex。Vuex是另一種元件通訊的方法,這節來說說Vuex(store倉庫)。    首先Vuex需要安裝,安裝的方式有很多,在這裡就不一一細說了。我是通過npm方式安裝的: npm install vuex --save 安裝好之後需要再m

2018年11月08日 關於Vue的父子通訊 and 子父通訊 and 任意及平行元件通訊的學習

1、父子通訊 //在html中的相關程式碼 <body> <div id="app"> <alert change_alert="再見"></alert> //如果我們想要點選按鈕的時候彈出的內容時change_alert中的“再

Vue.js元件通訊方式總結

  平時在使用Vue框架的業務開發中,元件不僅僅要把模板的內容進行復用,更重要的是元件之間要進行通訊。元件之間通訊分為三種:父-子;子-父;跨級元件通訊。下面,就元件間如何通訊做一些總結。 1.父元件到子元件通過props通訊 在元件中,使用選項props來宣告需要從父級元件接受的資料,props的值可以

聊聊Vue.js元件通訊的幾種姿勢

寫在前面 因為對Vue.js很感興趣,而且平時工作的技術棧也是Vue.js,這幾個月花了些時間研究學習了一下Vue.js原始碼,並做了總結與輸出。 文章的原地址:https://github.com/answershuto/learnVue。 在學習過程中,為Vue加上了中文的註釋htt

Vue之父子元件通訊例項講解(props、$ref、$emit)

元件是 vue.js 最強大的功能之一,而元件例項的作用域是相互獨立的,這就意味著不同元件之間的資料無法相互引用。那麼元件間如何通訊,也就成為了vue中重點知識了。這篇文章將會通過props、$ref和 $emit 這幾個知識點,來講解如何實現父子元件間通訊。   在說如何實現通訊

說說在 Vue.js 中如何實現元件通訊

1 用法 假設父元件的模板包含子元件,我們可以通過 props 來正向地把資料從父元件傳遞給子元件。props 可以是字串陣列,也可以是物件。 html: <div id="app"> <deniro-component message=""嫦娥四號"成功發射

說說在 Vue.js 中如何實現元件通訊(高階篇)

之前說過,可以使用 props 將資料從父元件傳遞給子元件。其實還有其它種的通訊方式,下面我們一一娓娓道來。 1 自定義事件 通過自定義事件,我們可以把資料從子元件傳輸回父元件。子元件通過 $emit() 來觸發事件,而父元件通過 $on() 來監聽事件,這是典型的觀察者模式。 htm

vue實現父子元件、兄弟元件通訊

父傳子 父元件(app.vue) <template> <div id="app"> <hello-world :person="user"><

vue父子元件通訊

父元件向子元件通訊 原理: 父元件data中存在一屬性,子元件通過props接收,父元件動態繫結該資料。 子元件程式碼: <template> <div class="child"> <button>減一</button>

Vue元件通訊

前言:本文主要介紹在Vue中元件與元件如何進行資訊傳遞。分為三部分: 父元件向子元件 子元件向父元件 非父子元件通訊 一、父元件向子元件通訊(props) ①、父元件向子元件傳遞字串 <template> <div id="m-dialog"&g

Vue元件元件通訊

元件的用法 註冊之後才能使用,註冊分區域性註冊和全域性註冊 元件和Vue例項類似,基本可以使用其所有內容(data,computed,methods,filters,watch) 與Vue例項不同,data是函式,輸入需要return 全

vue倉庫、元件通訊、前後臺數據互動、前端儲存資料大彙總

目錄 路由重定向 倉庫介紹 vuex外掛:可以完成任意元件間資訊互動(移動端) 前端儲存資料大彙總 前後臺互動方式(重點) 前後臺數據互動 axios外掛:完成