位置: 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创建项目后开始写的步骤)

  • 个体工商户年报网上申报入口
  • 残保金为啥经过个人账户
  • 幼儿园账务处理及报税
  • 装修费用应该计入什么科目
  • 建筑业收到预收款预缴增值税
  • 单位承担的社保费用计入什么科目
  • 材料采购二级科目
  • 公户可以在淘宝下单吗
  • 专项科研经费
  • 建筑业预缴税款都要填哪些表
  • 应交税费账户期末借方余额反映的是
  • 资产负债表其他流动资产包括什么
  • 工薪个人所得税扣除
  • 年底开发票需要交企业所得税吗?
  • 代开专票地税没交怎么办?
  • 不得核定征收企业所得税的行业
  • 增值税缴纳计入成本吗
  • 购进原材料没有发票怎么办
  • 用银行存款缴纳上月所得税分录
  • 出口视同内销补缴增值税会计分录?
  • 苹果mac os x 怎样打开DVD播放程序
  • 发票产生的材料是什么
  • 电脑cpu风扇不动怎么办
  • 支付的费用没有发票能入费用科目吗
  • 高新企业有啥用
  • 第三方代收的款项怎么做账
  • 会计账簿的启用规则
  • 凯恩kane
  • yolo v5 focus
  • 房地产取得土地怎么做账
  • 固定资产生产经营期间正常报废产生的净收益
  • 贷款的减值会计怎么做账
  • 如何知道是干皮还是油皮
  • php使用函数限制字符串长度和格式
  • thinkphp3.0
  • thinkphp d
  • 餐厅手撕发票
  • 安装exclipse
  • ChatGPT 逆天测试,结局出乎预料
  • thinkphp官网
  • 现金股利什么时候到账
  • 财务费用为负的意思
  • C语言中次方怎么表示
  • 财务报表的组成主要包括
  • 会计人员信息采集怎么填
  • 主营业务收入和营业外收入均属于收入
  • mysql分页怎么实现
  • 发票开错抬头做红字发票的账务处理是?
  • 经营性流动资产减去经营性流动负债
  • 年末结转步骤
  • 小规模企业提现到自己个人银行卡需要交多少税
  • 承兑汇票利息分录
  • 员工用自己的钱买的材料如何做账
  • 企业的研发活动阶段包括
  • 开票和不开票
  • 结转已销商品的销售成本分录
  • 存出保证金计入
  • 企业内在
  • ubuntu server教程
  • os x10.11el capitan公测版beta2官方下载地址
  • centos6.5安装步骤
  • avgnt.exe
  • gcasInstallHelper.exe是什么进程 作用是什么 gcasInstallHelper进程查询
  • centos fuser
  • win10系统如何关闭杀毒软件和防火墙
  • 网卡破解
  • Linux系统配置IP地址
  • win7系统搜索功能没了
  • linux如何限制指定ip访问
  • Following the pipeline
  • window.open打开窗口设置背景色
  • 简述ajax
  • js每天的定时任务
  • 高通 trinket
  • jquery插件是干什么的
  • 信息页文内画中画广告js实现代码(文中加载广告方式)
  • 国税局官网发票查验平台
  • 河南新农合缴费记录可以在哪里查?
  • 企业个税网上申报时间
  • 什么是联保发票呢
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设