Vue筆記(六)——Vue組件通信Vuex

組件通信

vue本身的組件通信

  • 父==>子:父組件向子組件傳參或者調用子組件的方法
  • 子==>父:子組件向父組件傳參或者調用父組件的方法
  • 兄弟之間:兄弟組件之間傳參或者調用方法

父子通信

  • 傳參 - props
思路:定義子組件的屬性(自定義),父組件賦值給子組件
  • 調用方法(1) - $refs
思路:定義子組件的屬性-ref="a",父組件通過:this.$refs.a.子組件方法();
  • 調用方法(2) - children
思路:父組件通過:this.$children[0].子組件方法();

子父通信

  • 調用方法(1) - $parent.$emit("父組件自定義事件");
思路:父組件在組件的生命周期(mounted)用$on定義事件,子組件用this.$parent.$emit("父組件自定義事件");
  • 調用方法(2) - $emit("父組件自定義事件");
思路:父組件在調用子組件時用v-on把事件傳給子組件,子組件用this.$emit("父組件自定義事件")調用父組件傳過來的事件
<div id="app"><h1>父組件-{{this.text}}</h1><!-- 子組件 --><child v-on:parentEvent="changeText()"></child>
</div>
<script type="text/javascript">var vm = new Vue({el:"#app",data:{text:''},methods:{changeText(_text){this.text = _text;}},components:{'child':{template:'<p><label>子組件</label><input type="text" v-on:input="change" /></p>',methods:{change(event){this.$emit('parentEvent',event.target.value);}}}}});
</script>
  • 調用方法(3) - parent
思路:父組件在調用子組件時用v-on把事件傳給子組件,子組件用this.$parent.父組件事件
<div id="app"><h1>父組件-{{this.text}}</h1><child></child>
</div>
<script type="text/javascript">var vm = new Vue({el:"#app",data:{text:''},methods:{changeText(_text){this.text = _text;}},components:{'child':{template:'<p><label>子組件</label><input type="text" v-on:input="change" /></p>',methods:{change(event){this.$parent.changeText(event.target.value);}}}}});
</script>

兄弟之間的通信

和上面介紹的父子之間通信是一樣的,因為任何連個子組件之間都會擁有一個共同的父級組件,所以兄弟組件之間的通信就是子1向父,然后父向子2,這樣來達到兄弟之間組件的通信

Vuex - 狀態管理通信

跨組件通信的一種實現方式
  • 用到就封裝一個組件.js
  • 組件.js
// 設置屬性:state
const state = {count = 0;
}
// 設置方法:mutaions
const mutaions = {increment(_state){_state.count += 1;}
}
// 執行方法
const actions = {increment(_content){_content.commit('increment');}
}
// 暴露
export default{state,mutaions,actions
}
  • 集合實例化 store.js
import Vue from 'Vue';
import Vuex from 'vuex';
// 引入組件.js
import transition from './transion.js';
// 實例化對象
const store = new Vue.Store({modules:{transition}
});
// 暴露對象
export default store;
  • 主入口app.js實例化vuex對象
// 引入vuex對象
import store from './vuex/store.js';
// 實例化vuex對象
new Vue({el:"#app",router,store,render:h=>h(app)
});
  • 各組件之間調用

1.調用參數

$store.state.組建名.屬性

2.調用方法

$store.dispatch('事件名');

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/449289.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/449289.shtml
英文地址,請注明出處:http://en.pswp.cn/news/449289.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

灼灼夏日 - 遙思故鄉 - 赤子無相忘

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 偶然翻看舊照片&#xff0c; 想起沒有帶過來的一本本詩集、散文集、手抄本、畫冊 ... 想起母親的寄掛 ... 想起父親的沉默 ... 想起少…

錢生錢最好的辦法是什么?

當你養成理財的六種好習慣時&#xff0c;你能錢生錢了。這六種習慣是&#xff1a; 習慣一&#xff1a;記錄財務情況。能夠衡量就必然能夠了解&#xff0c;能夠了解就必然能夠改變。如果沒有持續的、有條理的、準確的記錄&#xff0c;理財計劃是不可能實現的。因此&#xff0c;在…

grid - 隱式命名網格線名稱

1.隱式的指定網格線反向指定了隱式的網格區域名稱&#xff0c;命名的網格區域隱式的命名了網格線名稱. 指定網格區域會給網格區域邊線添加隱式的網格線名稱。這些網格線的命名是基于網格區域來命名&#xff0c;只是在網格區域名稱的后面添加后綴-start或-end. 1 <view class…

前端筆試題小結(一)

前端筆試題小結&#xff08;一&#xff09; 2020-03-13 題目一&#xff1a; 將一個js數組去重。 樣例&#xff1a; 輸入&#xff1a;[ 1, “apple”, 3, “a”, 3, 1, 5, 6, “a”, 4 ] 輸出&#xff1a;[ 1, “apple”, 3, “a”, 5, 6, 4 ] 分析1&#xff1a; 將兩個數組循…

2019-3-1

偽靜態: .html url(^page/(?P<id>\d).html/$,views.page,namepages) /page/1|2|3.html/ | {% url pages 1|2|3 %} 3.request對象 --method,GET,POST --FILES,META,body,path,get_full_path(),is_ajax(),COOKIE,session 4.CBV處理請求的另外一種方式 from django.…

java 使用 new Date() 和 System.currentTimeMillis() 獲取當前 時間戳

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 在開發過程中&#xff0c;通常很多人都習慣使用new Date()來獲取當前時間。 使用起來也比較方便&#xff0c;同時還可以獲取與當前時間…

持幣過節也能讓錢生錢

今天是國慶長假前最后一個交易日。從盤面上看&#xff0c;投資者包括部分基金公司減倉明顯。對于目前大盤高位震蕩&#xff0c;很多人選擇落袋為安&#xff0c;持幣過節&#xff0c;不失為明智之舉。但你知道嗎&#xff0c;持幣過節也能讓錢生錢。今天我就來為各位講講其中的奧…

關于cat命令修改文件內容(導入變量符號以及變量內容)

關于cat命令修改文件內容&#xff08;導入變量符號以及變量內容&#xff09; cat >1.txt<<END $11 $22 $1 $2 END 查看文件內容為&#xff1a; [rootserver04 ~]# cat 1.txt 1 2[rootserver04 ~]# 說明導入的$1,$2自動被解析了。但是當我們想輸入一些變量而不被解析…

Android - AsyncTask你知道多少?

http://www.cnblogs.com/qlky/p/5658070.html 為什么asyncTask最好在主線程初始化&#xff1f;在子線程怎么辦&#xff1f; AsyncTask四個方法的執行順序&#xff1f; mWorker和mFuture對象分別是什么&#xff1f;有什么作用&#xff1f;和doInbackground還有postExecute有什么…

2020-3-15

題目一&#xff1a; 問答 請寫出如下代碼運行后產生的結果&#xff0c;并給出解釋&#xff0c;說明結果是如何得出的。 setTimeout(() > console.log(a)); Promise.resolve().then(() > console.log(b);).then(() > Promise.resolve(c).then((data) > {setTimeout…

Kong-dashboard 安裝 啟動運行

Kong Dashboard 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Kong is a scalable, open source API Layer (also known as a API Gateway, or API Middleware). Kong runs in front o…

自動讓錢生錢方法100%安全穩定

中國區網友問題&#xff1a;   手里有一些余錢&#xff0c;希望找一個方法能夠讓錢自動生錢。最好不要讓我煩心的&#xff0c;能夠自動操作。并且不能有風險&#xff0c;本錢絕不能有風險&#xff0c;利潤要很豐厚才可以。像銀行存款、股票基金就不要介紹了。因為前者生錢太慢…

linux lnmp15 部署laravel項目

使用composer創建一個 laravel項目 安裝composer&#xff1a; https://www.jianshu.com/p/ce1d36cbe00f composer create-project laravel/laravel5.5.* --perfer-dist /home/web/blog 復制代碼添加虛擬主機配置文件 sudo lnmp vhost add 復制代碼注&#xff1a;由于laravel的入…

ReentrantLock源碼

ReentrantLock與Synchronized區別在于后者是JVM實現&#xff0c;前者是JDK實現&#xff0c;屬于Java對象&#xff0c;使用的時候必須有明確的加鎖(Lock)和解鎖(Release)方法&#xff0c;否則可能會造成死鎖。 先來查看ReentrantLock的繼承關系(下圖)&#xff0c;實現了Lock和Se…

2020-3-16

題目一&#xff1a; 如何用js獲取checked屬性值。 通過checked屬性可以設置復選框或者單選按鈕處于選中狀態。 <!DOCTYPE html> <html> <head> <meta charset" utf-8"> <script> window.onload ()>{let ckdocument.getElementByI…

讓錢生錢!商人賺錢的6條方法

錢&#xff0c;這個是做商人第一件需要了解的東西&#xff0c;如何讓錢生錢呢 商人須知&#xff1a; 1、賺錢第一要手上有余銀&#xff0c;倒買倒賣相信大家見多了把&#xff0c;手上最好有100W&#xff0c;最少也要50W&#xff0c;如果沒有&#xff0c;就先積累哪么多&#xf…

【轉】Snackbar和Toast的花式使用,這一篇就夠了

https://www.jianshu.com/p/e023bfb6466b 轉載于:https://www.cnblogs.com/tc310/p/10679042.html

解決報錯: No candidates found for method call XXXX (方法沒有調用者)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 No candidates found for method call XXXX 報錯如題&#xff0c;指 xxx 這個方法 沒有調用者。 我是要直接返回一個 PageImpl 對象…

裝飾器概念及運用

#!/user/bin/env python3# -*-encoding"utf-8"-*-# 1.裝飾器概念#裝飾器本身就是函數&#xff0c;為別的函數添加附加功能。把握兩個遵循的條件。# 1.不修改被修飾的源代碼內容。# 2.不修改被修飾函數的調用方式。# 裝飾器高階函數函數嵌套閉包# 高階函數定義:# 1.函…

2020-3-17

題目一&#xff1a; JavaScript 獲取倒數第二個li元素 如何利用JavaScript獲取li元素集合中的倒數第二個元素。 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <style type"text/css"> #box{list-style:none;font-…