2024年最全vue通信、传值的多种方式(详细)_组件传值,物联网嵌入式开发开发零基础教学

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

    }
]

})


#### app.vue




#### ②开始使用vuex,新建一个 sotre文件夹,分开维护 actions mutations getters


![](https://img-blog.csdn.net/20180208174810357)


#### ②在store/index.js文件中新建vuex 的store实例


\*as的意思是 导入这个文件里面的所有内容,就不用一个个实例来导入了。



import Vue from ‘vue’
import Vuex from ‘vuex’
import * as getters from ‘./getters’ // 导入响应的模块,*相当于引入了这个组件下所有导出的事例
import * as actions from ‘./actions’
import * as mutations from ‘./mutations’

Vue.use(Vuex)
// 首先声明一个需要全局维护的状态 state,比如 我这里举例的resturantName
const state = {
resturantName: ‘飞歌餐馆’ // 默认值
// id: xxx 如果还有全局状态也可以在这里添加
// name:xxx
}

// 注册上面引入的各大模块
const store = new Vuex.Store({
state, // 共同维护的一个状态,state里面可以是很多个全局状态
getters, // 获取数据并渲染
actions, // 数据的异步操作
mutations // 处理数据的唯一途径,state的改变或赋值只能在这里
})

export default store // 导出store并在 main.js中引用注册。


#### ③actions



// 给action注册事件处理函数。当这个函数被触发时候,将状态提交到mutations中处理
export function modifyAName({commit}, name) { // commit 提交;name即为点击后传递过来的参数,此时是 ‘A餐馆’
return commit (‘modifyAName’, name)
}
export function modifyBName({commit}, name) {
return commit (‘modifyBName’, name)
}

// ES6精简写法
// export const modifyAName = ({commit},name) => commit(‘modifyAName’, name)


④mutations



// 提交 mutations是更改Vuex状态的唯一合法方法
export const modifyAName = (state, name) => { // A组件点击更改餐馆名称为 A餐馆
state.resturantName = name // 把方法传递过来的参数,赋值给state中的resturantName
}
export const modifyBName = (state, name) => { // B组件点击更改餐馆名称为 B餐馆
state.resturantName = name
}


⑤getters



// 获取最终的状态信息
export const resturantName = state => state.resturantName


#### ⑥在main.js中导入 store实例



// The Vue build version to load with the import command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from ‘vue’
import App from ‘./App’
import router from ‘./router’
import store from ‘./store’

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
el: ‘#app’,
router,
store, // 这样就能全局使用vuex了
components: { App },
template: ‘’
})



#### ④在组件A中,定义点击事件,点击 修改 餐馆的名称,并把餐馆的名称在事件中用参数进行传递。



...mapactions 和 ...mapgetters都是vuex提供的语法糖,在底层已经封装好了,拿来就能用,简化了很多操作。


其中...mapActions(['clickAFn']) 相当于this.$store.dispatch('clickAFn',{参数}),mapActions中只需要指定方法名即可,参数省略。


...mapGetters(['resturantName'])相当于this.$store.getters.resturantName



组件A

餐馆名称:{{resturantName}}


    B组件同理



组件B

餐馆名称:{{resturantName}}


最后:本文完全手打,如需转载请注明出处,谢谢,如果不明白的地方欢迎给我留言哦。


#### **github项目仓库地址:https://github.com/byla678/vuexdemo.git**


**[卓越的云计算服务提供商,230万+用户正在享受阿里云"稳定,安全,低成本"的产品服务,金牌服务:免费体验,专业快速备案,7x24小时售后,服务器只选阿里云](https://bbs.csdn.net/topics/618679757)**



![img](https://img-blog.csdnimg.cn/img_convert/5b9cb446085bad72a5f410d5dda1dac2.png)
![img](https://img-blog.csdnimg.cn/img_convert/da58761e110bde0d4ca1a17838a4654f.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

[外链图片转存中...(img-aoy6LU63-1715634145917)]
[外链图片转存中...(img-AHa4I9v9-1715634145918)]

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

  • 30
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值