组件的传参及VueX

本文介绍了Vue中组件间的通信方式,包括props、$emit、$parent、$children、$refs以及$root的使用。此外,讲解了事件总线bus实现跨层级通信,以及Vuex在全局状态管理和响应式更新中的应用。Vuex通过state、mutations、actions和getters管理状态,并通过module支持子模块。最后讨论了登录功能为何要迁移到Vuex以及api模块化的好处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 组件的传参

    • 父传子 props
    • 子传父 事件$emit
    • 引用父组件$parent √
    • 引用子组件
      • $children √
      • $refs √
    • 引用根组件
      • $root
    • 根组件 最大组件
    • 事件bus传参(跨层级访问数据)(非父子关系)
      • 1. 创建bus.js
        • import Vue from 'vue'
        • var bus = new Vue();
        • export default bus;
      • 2. 在要发送数据的组件中导入bus并使用 bus.$emit
      • 3. 在有接收数据的组件中导入bus 并使用 bus.$on (注意this)
      • 注意:任意组件只要导入bus 就可以随意的 发送与监听数据

      • bus.$on(eventname,callback) 监听事件
        bus.$emit(eventname,data)发送事件
        bus.$off(eventname)移除事件
      • provider和inject依赖注入跨层级访问(只读)
        • provide提供数据所有子孙都可以通过inject注入数据
        • inject 接收父辈组件提供的数据
      • Vuex全局数据共享
  • VueX

    • 解释
      • Vuex 实现数据的全局共享,响应式更新
      • state存放状态
        • $store.state.xxx访问
      • mutations改变状态的唯一方法SET_SCORE(state,data){}
        • $store.commit("xxx",data)
      • actions异步操作数据的方式changeScore(context,data){ //在actions中访问mutations context.commit(“SET_SCORE”,data)}
        • $store.dispatch("xxx",data)
      • getters从现有的状态计算出新的数据level(state){ return state.user.score/100}
        • $store.getters.xxx
      • module子模块
      • 把登录功能放在store/moudules/user.js actions中
      • loginView.vue页面执行登录
      • 实现store/modules/user.js 实现注销
      • 实现 登录成功提示,登录失败提示
    • 为什么要把登录转换到vuex中
      • 1. 登录后成功的数可以全局共享
      • 2. 为了重复利用登录功能可能不止在登录页面
        • 1. 首页点击弹框登录
        • 2.购物车 跳转前,弹框登录
        • 3. 登录位置会有很多
        • 如果写在Vuex只需要在登录地方$store.dispatch("login",data) 方法就可以
    • 为什么要写api/login.js (定义api呢)
      • 重复利用登录的api也会调用多次
      • 方便集中管理 所有的请求地址与请求方式 api文件中改请求方式与参数可以直接修改 api内容就可以,不用具体进入到某个组件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值