位置: IT常识 - 正文

Vue中几种常见的传参方式(vue有哪些内容)

编辑:rootadmin
Vue中几种常见的传参方式 前言

推荐整理分享Vue中几种常见的传参方式(vue有哪些内容),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue常用功能,vue常识,vue常用,vue常用语法,vue中的...,vue基本用法,vue常用,vue常用,内容如对您有帮助,希望把文章链接给更多的朋友!

Vue组件传参方也是面试最常考的内容,犹记得当初刚出来实习的时候,遇到一个需求,大概就是一个tabs下面有五个子页面,每个子页面表示订单的一种状态。当时是把五个子页面抽成了五个组件,做完后又有一个问题,就是在一个页面更改了数据状态之后,切换到另一个页面的时候要通知这个页面更新数据,当时是完全没有思路,找带我的大哥教我,讲了半天还是没有懂,最后还是大哥手把手的教我写完的,那时候觉得大哥好厉害,666,现在一想起来,不就是最简单的兄弟组件之前参数传递吗?😓今天就来回忆一下工作中常用的几种组件传参的方式。

父子组件之间传参

父子组件之间最常用的组件传参方式就是:父传子使用v-bind:attr传递,子组件使用props接收,子传父使用方法传递,父组件在方法参数中获取,即$emit['method':val],父组件使用@method接收。

// 父传子// 父组件<template> <div> 父组件 <br/> <child :name="name" @getChild="getChild"/> </div></template><script> export default { data(){ return { name:'father' } }, methods:{ getChild(val){ console.log(val) // 123 } } }</script>// 子组件<template> <div> 子组件 <br/> {{name}} <button @click="toParent">传到父组件</button> </div></template><script> export default { props:{ name:{ type: String, default:''} }, data(){ return { } }, methods:{ toParent(){ this.$emit('getChild',123) } } }</script>Vue中几种常见的传参方式(vue有哪些内容)

除此之外,vue还提供了一种语法糖,可以简单的实现父子组件间数据的双向绑定。

// 父组件<template> <div> 父组件 <br/> <child :name.sync="name" /> </div></template><script> export default { data(){ return { name:'father' } } }</script>// 子组件<template> <div> 子组件 <br/> {{name}} <button @click="toParent">传到父组件</button> </div></template><script> export default { props:{ name:{ type: String, default:''} }, data(){ return { } }, methods:{ toParent(){ this.$emit('update:name',123) } } }</script>

父组件还可以使用$refs直接调用子组件的所有属性和方法,但是并不推荐使用这种方法。

<child ref="child"></child>// 父组件可以使用$refs.child.xxx直接调用子组件的属性和方法兄弟组件之间传参

兄弟组件之间传参可以使用vuex、localStorage、sessionStorage、EventBus事件中转,前面三种方法无非就是找第三方把数据存起来,需要的时候再获取就行,这里主要讲一下事件中转的用法。

// 1.首先在app.vue种定义一个中转站,再挂载到全局对象上面。// App.vueVue.prototype.$eventBus = new Vue()// 2.在需要传递的页面使用$emit(eventName,params)发射参数this.$eventBus.$emit(eventName,params)// 3.在需要接收参数的页面使用$on(eventName,(params) => {}) 接收参数this.$eventBus.$on(eventName,(params) => {})

这种方法其实还可以用于跨层级传参,以前我很抵触这种用法,后来用过一次之后觉得真香啊。还有需要注意的一点就是在组件销毁的时候记得移除监听的事件绑定,使用$eventBus.$off(eventName)实现事件监听移除。

provide/inject传参

provide/inject可以用于跨层级传参,不过只能从上到下:

// 在上级组件中使用provide修饰的数据,在下级组件中可以使用inject接收,类似于props // 上级组件 <script> export default { data(){ return { age: 12 } }, provide(){ return { name: 111, age: this.age } } } // 下级组件 <script> export default { data(){ return { } }, inject:['name','age'] // 使用时当data数据使用就行 } </script>

值得注意的是,如果上级组件传的数据是响应式的,那么接收到的数据就是响应式的,反之亦然。 以上就是我在工作中常用的组件传参方式,喜欢的话就点个赞再走吧。

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

上一篇:【python量化】大幅提升预测性能,将NSTransformer用于股价预测(python 量化)

下一篇:4个令人惊艳的ChatGPT项目,开源了!AIGC也太猛了...(令人感到惊艳)

  • 企业筹建期间契税账务处理
  • 发票行业税目怎么选择
  • 稽查查补的税款用什么时候的税率表示
  • 抄税报税清卡怎么操作流程
  • 企业所得税季度申报时间
  • 收到的返利需要交增值税么
  • 增值税专票怎么抵扣
  • 个体户季度报税表怎么填
  • 搬运费计入
  • 企业租车费用怎么处理方法
  • 事业单位开发成本占比
  • 企业在开办期间发生的费用如何处理
  • 承兑贴息收入账务处理怎么做?
  • 金税盘怎么做账务处理
  • 一般风险准备金计算公式
  • 财政拨款收入如何记账
  • 增值税专用发票的税率是多少啊
  • 土地无形资产怎么估值
  • windows11如何删除账户
  • linux耳机插拔检测
  • 税盘的服务费
  • 加油站的成品油经营许可证过期3个月还能换证吗?
  • 增值税发票认证操作流程
  • 为什么电脑连上蓝牙耳机却是外放
  • 教你如何在白桦树上采集桦树汁
  • 卖废旧物品账务处理
  • php判断链表是否有环
  • 开户银行对公司有影响吗
  • 公司购买车怎么做
  • linux特殊权限设置
  • linux安装常用命令
  • 苹果电脑录屏带麦克风
  • php流程引擎
  • 其他业务收入属于收入吗
  • php实现留言板功能怎么用
  • php json_encode与json_decode详解及实例
  • vue 自适应网站ui框架
  • 图像分割csdn
  • es6新增了什么
  • 买配件组装成产品算生产吗
  • 进项税额转出需要补税
  • 实收资本确认时间什么入账
  • 工会经费缴纳后会返还吗
  • 地税代开的发票怎么计提税款?
  • 异地预交个人所得税
  • 更正申报季度企业所得税
  • 小规模未达起征点销售额是多少
  • 主营业务收入净额在利润表里怎么看
  • 所得税费用是什么意思
  • 记账凭证粘贴顺序银行回单
  • 分公司是否具有独立承担民事责任的能力
  • 质量不合格怎么说
  • 国库集中支付是什么意思
  • 物业公司收取电费服务费
  • 模具维修费用清单表格
  • 保理手续费计入投资收益吗
  • 创办小企业如何起步
  • sql server错误和使用情况报告
  • mysql5.6无法启动
  • win10显示win8
  • vista ui
  • centos 中文
  • ha1.dll丢失开不了机
  • windows无法更改设置
  • winxp怎么自动开机
  • win7系统还能用不
  • centos简易安装
  • win10添加功能在哪
  • win8使用技巧 图文
  • cocos2dx怎么用
  • 12个超实用的JQuery代码片段
  • dos命令批量处理文件
  • cocos2dx4.0入门
  • nodejs import
  • Unity 相关经典博客资源总结(持续更新)
  • linux进程运行的两种方式
  • 九九乘法表报
  • python语言文件
  • 国税周末有值班的吗
  • 进口汽车增值税怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设