第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

vue 6種通信總結(jié)

標(biāo)簽:
Vue.js

序言:

更新源代码

6个分支,不懂的切换分支,可以直接在src文件替换vue-props文件夹里面文件
下载文件记得先安装依赖,npm install
然后在启动 npm run dev

常用vue通信大概有这几种方式进行:

  • 组件间的父子之间的传值

  • 组件间的子父之间的传值

  • 非组件间的组件间的传值(简称:EventBus)

  • sessionStorage缓存传值

  • 路由带参数跳转进行传值

  • vuex进行传值

1. 组件间的父子之间的传值

整理一下思路:父组件调用子组件dom位置声明一个名称,然后在子组件接收这名称,就可以直接调用

父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件)

https://img1.sycdn.imooc.com//5d2d76210001645b06670377.jpg

image.png

子组件

https://img1.sycdn.imooc.com//5d2d76270001e81206620345.jpg

image.png

2.组件间的子父之间的传值

理一下思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值

子组件

https://img1.sycdn.imooc.com//5d2d762c0001ac8106590397.jpg

image.png

父组件


https://img1.sycdn.imooc.com//5d2d76500001fffd06570373.jpg

image.png




3.非组件间的组件间的传值(简称:EventBus)

我先举个例子来解释下组件间的关联

组件A比作一个路由,通过中继器(eventBus.js)让其他房子接收到信号(组件B)

首先在src目录下创建一个eventBus.js文件,复制这行代码进去

import Vue from 'vue'let connect = new Vue()    // 实例export default connect

组件A

https://img1.sycdn.imooc.com//5d2d76550001456006650435.jpg

image.png

组件B

https://img1.sycdn.imooc.com//5d2d765a0001808e06170456.jpg

image.png

效果

https://img1.sycdn.imooc.com//5d2d76700001541a02910454.jpg


sessionStorage

组件A,感觉用法和上一篇差不多,就不在一一叙述

https://img1.sycdn.imooc.com//5d2d76910001fe9106690494.jpg

image.png

组件B

https://img1.sycdn.imooc.com//5d2d76980001342606700425.jpg

image.png

路由带参数跳转

路由默认的页面

https://img1.sycdn.imooc.com//5d2d76bd00013cef06660323.jpg

image.png

路由其他页面 children

https://img1.sycdn.imooc.com//5d2d76c40001615d06580402.jpg

image.png

效果

https://img1.sycdn.imooc.com//5d2d76c900010cd604110440.jpg


vuex主要做数据交互,维护公共状态或数据

多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练


src下创建一个store的文件夹,里面创建index.js文件

import Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex)export default new Vuex.Store({   state: {   city: "上海"
   },   actions: {
     handleCity(ctx, city) {   // console.log(ctx, city)
       ctx.commit("handleCity", city)
    }
  },mutations: {
     handleCity(state, city) {
      state.city = city
   }
   }
})

某文件触发事件

methods: {
    handleCityClick(city) {
      this.$store.dispatch("handleCity", "北京");
    },

展示页面

<h1>{{this.$store.state.city}}</h1>



作者:艾尔丶Lawliet
链接:https://www.jianshu.com/p/eaa3a3b577a3


點擊查看更多內(nèi)容
1人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消