vue传值之父子组件传值、bus传值、vuex传值…

本文介绍了Vue框架中组件间的通信方法,包括父子组件通过emit和props传递数据,兄弟组件间使用事件总线(bus),以及如何利用Vuex进行状态管理。通过实例详细展示了这些技术在实际开发中的应用。
摘要由CSDN通过智能技术生成

效果图

在这里插入图片描述

改变后

在这里插入图片描述

详情可参考官网props

二、子组件通过emit来触发父组件的自定义事件

====================================================================================

子组件

<button @click=“setTime”>点击我获取父组件的方法

父组件

<Child @get-time=“getTime” />

{{ time }}

效果图

在这里插入图片描述

改变后

在这里插入图片描述

详情可看官网自定义事件

关于父子组件传值遇到的坑可以看vue修改父组件传值报错

三、兄弟之间通过bus

========================================================================

父组件引入两兄弟

兄弟组件二号

我是2号兄弟组件

{{ name }}

注:用bus传值,父组件引入子组件,子组件需要传值的用Bus. e m i t ( ) , 接 收 方 用 B u s . emit(),接收方用 Bus. emit(),接收方用Bus.on()。

最后看效果图

在这里插入图片描述

改变后

在这里插入图片描述

四、VUEX传值

=====================================================================

在使用VUEX时先弄懂几个概率。

VUEX是用来干嘛的?

答:vuex是一个状态管理工具存储应用所有组件的状态。

构成:

  • state:vuex的基本数据,用来存储变量。

  • mutations:提交更改数据,同步更新状态。

  • actions:提交mutations,可异步操作。

  • getters:是store的计算属性。

  • modules:模块,每个模块里面有四个属性。

用官网上的一张图来展示vuex工作的流程

在这里插入图片描述了解更多VUEX知识 可看官网What is Vuex?

实现的功能:有两个组件A和B,有一个公共的名字(默认为UZI),想要使组件A改变名字,组件B名字也改变为一样的,组件B改变反之A也改变。

在这里插入图片描述

这是文件目录,为了方便后期管理将store下面新建文件夹与文件,每个文件管理一个或几个状态,这里name.js管理name

在这里插入图片描述

store下面的index.js代码

import Vue from ‘vue’

import Vuex from ‘vuex’

import name from ‘./name/name’

Vue.use(Vuex)

export default new Vuex.Store({

modules: {

name,

}

})

name.js代码

const state = { //基本数据,变量

userName: “UZI” //默认值

}

const actions = { //提交mutations

changeNameOne({ commit }, name) {

return commit(“changeNameOne”, name)

},

changeNameTwo({commit }, name) {

return commit(“changeNameOne”, name)

}

}

const getters ={ //计算属性

userName(state){

return state.userName

}

}

const mutations = { //同步的数据

changeNameOne(state, obj) {

state.userName = obj

},

changeNameTwo(state, obj) {

state.userName = obj

},

}

export default {

state,

actions,

getters,

mutations

}

NameOne组件

组件A

名字:{{ userName }}

<button @click=“changeNameOne(name)”>修改名字

mapActions和mapGetters是vuex的语法糖

NameTwo组件

**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

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

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

资料过多,篇幅有限,需要文中全部资料可以点击这里获取前端面试资料PDF完整版!

自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。

,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

[外链图片转存中…(img-xZ4CIkHH-1712976166773)]

[外链图片转存中…(img-lTcohcky-1712976166773)]

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

[外链图片转存中…(img-jZwHPtFS-1712976166774)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

[外链图片转存中…(img-Gb4lUmj5-1712976166774)]

[外链图片转存中…(img-dQr9Rkt9-1712976166774)]

资料过多,篇幅有限,需要文中全部资料可以点击这里获取前端面试资料PDF完整版!

自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。

  • 10
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue中,父组件向子组件传递数据可以通过props属性实现,而子组件向父组件传递数据可以通过自定义事件实现。具体的实现方法如下: 1. 父组件向子组件传递数据: 在父组件中,可以使用props属性将数据传递给子组件。例如: ``` <template> <div> <child-component :propName="parentData"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue' export default { data() { return { parentData: '这是父组件传递的数据' } }, components: { ChildComponent } } </script> ``` 在子组件中,可以通过props属性接收父组件传递的数据。例如: ``` <template> <div> {{ propName }} </div> </template> <script> export default { props: { propName: { type: String, required: true } } } </script> ``` 2. 子组件向父组件传递数据: 在子组件中,可以使用$emit方法触发一个自定义事件,并且将需要传递的数据作为参数传递到该事件中。例如: ``` <template> <div> <button @click="handleClick">点击传递数据到父组件</button> </div> </template> <script> export default { methods: { handleClick() { this.$emit('child-event', '这是子组件传递的数据') } } } </script> ``` 在父组件中,可以通过v-on指令监听子组件触发的自定义事件,并且在事件处理函数中获取子组件传递的数据。例如: ``` <template> <div> <child-component @child-event="handleChildEvent"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue' export default { data() { return { parentData: '' } }, components: { ChildComponent }, methods: { handleChildEvent(data) { this.parentData = data } } } </script> ``` 这样,当子组件中的按钮被点击时,就会触发一个名为child-event的自定义事件,并且将子组件传递的数据作为参数传递给该事件。在父组件中,我们通过v-on指令监听该事件,并且在事件处理函数中获取子组件传递的数据,从而完成了子组件向父组件传递数据的过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值