位置: IT常识 - 正文

VUE3传值相关六种方法(vue传值inject)

编辑:rootadmin
VUE3传值相关六种方法

目录

1.父传子(props)

 2.子传父组件方法和值(emit)

 3.子传父(v-model)

4.父组件调用子组件方法(ref)

5.VUEX

推荐整理分享VUE3传值相关六种方法(vue传值inject),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue三种传值方式,vue传值bus,vue三种传值方式,vue值传递,vue中传值的方式,vue三种传值方式,vue3.0传值,vue3.0传值,内容如对您有帮助,希望把文章链接给更多的朋友!

6.第六种爷孙传值provide / inject(官方并不建议未总结)

1.父传子(props)

VUE3父传子

1.将fatherToChild的值传递到index子组件之中并且在父组件中操作按钮子组件数据会跟随变化

<div class="bgc fed"> <div class="father"> <p>我是父组件</p> <p> <button @click="changeFather">更改父组件数值</button> </p> </div> <index :fatherToChild="fatherToChild" /> </div>

2.引入vue的import

import { defineComponent, ref, reactive, toRefs } from "vue";

3.const 所要传递的数据并且写上父组件的按钮方法

const state = reactive({ fatherToChild: "fatherToChild", }); const changeFather = () => { state.fatherToChild = "changeFather"; }; return { ...toRefs(state), changeFather, };

如图所示为一开始传递fatherToChild在点击按钮之后传递数值变为changeFather

4.在子组件之中接收所传递的props

export default { props: { fatherToChild: String, }, setup(props) { return { props, }; },};

如果不确定传值为什么可cons一下传递的props在控制台观察

在子组件中引用为

<p>父组件给子组件传值:{{ props.fatherToChild }}</p>

效果如图所示

可以观察到点击父组件后子组件数值跟随变化

 2.子传父组件方法和值(emit)

同VUE2一样子组件没有办法直接更改父组件方法,选用context.emit进行方法传递

1.子组件之中写方法触发context,emit

setup(props, context) { const childChangeFather = () => { context.emit("childUseFather", "childUseFather"); }; return { props, childChangeFather, }; },

context.emit(‘方法名’,数值)

 2.父组件之中接收方法后调用更改数值

const childUseFather = (val) => { state.fatherToChild = val; }; <index :fatherToChild="fatherToChild" @childUseFather="childUseFather" />

效果如图所示

VUE3传值相关六种方法(vue传值inject)

点击前点击后

 3.子传父(v-model)

如果子传父所更改的值恰好跟父组件相同可用v-model

1.父组件之中

<index v-model:fatherToChild="fatherToChild" />

 不再需要使用@和:

2.子组件之中

const modelChange = () => { context.emit("update:fatherToChild", "modelChangeFather"); };

使用update方法,context.emit("update:方法名","传值")

效果如图所示

点击前点击后

 同时父组件更改数值子组件也会同样跟随变化

4.父组件调用子组件方法(ref)

就是使用 ref 来获取dom 然后操作里面的参数和方法。

父组件之中

<p><button @click="fatherUse">ref父组件调用子组件方法</button></p> <index ref="child" /> const child = ref(); const fatherUse = () => { child.value.fatherUseChild("fatherChangeChild"); };

在组件上绑定ref,起名为child在调用时使用child.value.方法名(“传值”)

子组件之中

const state = reactive({ children: "children", }); // 父组件调用子组件方法并且进行传值更改 const fatherUseChild = (val) => { console.log("调用成功"); state.children = val; };

接收到传值val,触发方法给children重新赋值

效果如图所示

点击最后一个按钮父组件调用时

可以观察到子组件之中子组件的值变化为fatherChangeChild 

5.VUEX

文件目录结构如图所示

 index.js之中

import { createStore } from 'vuex'import {state} from './state'import {mutations} from './mutations'import {actions} from './actions'export default createStore({ state, mutations, actions, modules: { }})

注意如果引入的时候没写{}在后续会导致store.state.字段找不到,需要store.state.state.字段才能查到数据,只有好不好用就不知道了= =

首先在state之中

本文链接地址:https://www.jiuchutong.com/zhishi/294561.html 转载请保留说明!

上一篇:uniapp封装axios?大可不必那么麻烦。(uniapp封装组件,多了一层)

下一篇:创建vue2项目(vue创建项目后开始写的步骤)

  • oppo屏幕共享怎么打开(oppo屏幕共享怎样彻底清除)

    oppo屏幕共享怎么打开(oppo屏幕共享怎样彻底清除)

  • 荣耀30s是集成5G的吗(华为荣耀30s是集成5g吗)

    荣耀30s是集成5G的吗(华为荣耀30s是集成5g吗)

  • 微信etc没有扣费怎么办(微信etc为什么不从零钱里扣钱)

    微信etc没有扣费怎么办(微信etc为什么不从零钱里扣钱)

  • 手机号怎么设置空号让别人打不进来(手机号怎么设置别人打不进来)

    手机号怎么设置空号让别人打不进来(手机号怎么设置别人打不进来)

  • 华为总部在哪(华为总部在哪个城市哪个区)

    华为总部在哪(华为总部在哪个城市哪个区)

  • 文档网格是什么意思(文档网格是啥)

    文档网格是什么意思(文档网格是啥)

  • apple watch充电的时候屏幕上显示电源线(apple watch充电方案)

    apple watch充电的时候屏幕上显示电源线(apple watch充电方案)

  • usba接口和c接口有什么区别(usb-a和usb-c)

    usba接口和c接口有什么区别(usb-a和usb-c)

  • 无主题信息为什么删除不了(无主题信息为什么删除不了华为手机)

    无主题信息为什么删除不了(无主题信息为什么删除不了华为手机)

  • 内存或磁盘不足,word无法显示请求字体(内存或磁盘不足,excel无法再次打开或保存任何文档)

    内存或磁盘不足,word无法显示请求字体(内存或磁盘不足,excel无法再次打开或保存任何文档)

  • 抖音短视频删除了怎么恢复(抖音短视频删除了怎么找回来)

    抖音短视频删除了怎么恢复(抖音短视频删除了怎么找回来)

  • 微信删了重新下载聊天记录怎么恢复(微信删了重新下载还有原来的记录吗)

    微信删了重新下载聊天记录怎么恢复(微信删了重新下载还有原来的记录吗)

  • 苹果7和8的手机壳共用(苹果7和8的手机壳可以一起用吗)

    苹果7和8的手机壳共用(苹果7和8的手机壳可以一起用吗)

  • 拼多多为什么卸载不了(拼多多为什么卸不掉)

    拼多多为什么卸载不了(拼多多为什么卸不掉)

  • 魅族如何取消隐私模式(魅族怎么关闭隐藏应用)

    魅族如何取消隐私模式(魅族怎么关闭隐藏应用)

  • 运行窗口怎么打开(运行窗口怎么打开快捷键)

    运行窗口怎么打开(运行窗口怎么打开快捷键)

  • 属于windows7控制面板中的设置项目是(下列属于windows七控制面板中的设置项目是)

    属于windows7控制面板中的设置项目是(下列属于windows七控制面板中的设置项目是)

  • dbms是位于用户和什么之间(dbms是位于用户与操作系统之间的一层)

    dbms是位于用户和什么之间(dbms是位于用户与操作系统之间的一层)

  • 滴滴永久封禁解决办法(滴滴永久封禁解封要多久)

    滴滴永久封禁解决办法(滴滴永久封禁解封要多久)

  • 常用归一化/正则化层:InstanceNorm1d、InstanceNorm2d、(归一化的几种方法)

    常用归一化/正则化层:InstanceNorm1d、InstanceNorm2d、(归一化的几种方法)

  • Vue3:探讨一下mixin

    Vue3:探讨一下mixin

  • 进项税额加计抵减5%
  • 税前利润计算公式变动成本法
  • 年终奖报表怎么做
  • 预缴所得税更正怎么操作
  • ktv发票可以入账吗
  • 出纳可以编制工资单吗
  • 在建工程有应交税费吗
  • 暂估发票到账出入库单要填吗
  • 解除合同一次性补偿金怎样算个人所得税
  • 事业单位职工福利费计提标准和使用
  • 未认缴出资的股东退股
  • 发给一个人的说说
  • 应付债券的利息调整怎么计算
  • 增值税普通发票可以抵扣进项税吗
  • 哪些员工福利可以让企业合理避税
  • 销项发票遗失怎么办
  • 增值税计入无形资产的入账价值吗?
  • 历史成本重置成本属于会计是什么
  • 其他应收款预算会计需要做账吗
  • 公司对公账户可以转私人账户多久到账
  • 增值税专用发票电子版
  • 超市里销售
  • 商业汇票的目的
  • 农业大棚卷帘机用什么油
  • 一般纳税人出租不动产
  • 以土地使用权投资入股的土地增值税
  • phpexcel读取excel
  • phprestfulapi框架
  • 2023年生活性服务业加计扣除
  • vue角色管理
  • springboot整合websocket怎么接受图片消息
  • php接收post
  • lsscsi命令详解
  • 可供分配利润是留存收益吗
  • 公司年夜饭怎么说话
  • 不得免征和抵扣税额是什么意思
  • 区块管理办法
  • c语言的共用体
  • Python函数怎么返回
  • 房地产企业开发的已出租的房屋属于投资性房地产吗
  • 非独立核算的分公司需要独立建账吗
  • 发票开9个点
  • 什么情况需要个人所得税
  • t3怎么查资产负债表
  • 营改增清包工
  • 专用发票跨月退税怎么办
  • 收到费用发票分录
  • 不允许抵扣进项税额的是
  • 跨年更正错误记账凭证的方法
  • 出口退税免抵退税额要交城建税吗
  • 销售 返利
  • 代开发票的弊端是如何体现的?
  • 资产负债表期初余额和期末余额
  • 购买汽车时的保险是什么
  • 还没有开业的公司怎么样
  • 账面余额与账面净值
  • 关联企业有什么好处
  • 企业增资还需要增资账户么
  • 应收账款的账户余额
  • sqlserver锁机制
  • Win2000/2003 Broadcom 网卡 teaming 配置手册
  • 苹果电脑的重新启动在哪里
  • window10 屏幕
  • win8.1怎么设置
  • linux的hostname(主机名)修改详解
  • win8操作系统安装
  • win8怎么一开机就进入桌面
  • xp无法加载配置文件
  • mac nums
  • Particle system study section 1
  • Basic Layout——基本布局
  • 安卓listview用法
  • jquery动效
  • python中二维列表的定义
  • 从重置手
  • 怎么查询开票信息呢
  • 一般纳税人资格查询
  • 法国进囗红酒
  • 河南省城市规划法
  • 2019小规模纳税人标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设