vue3中的组件传值的方式

这篇具有很好参考价值的文章主要介绍了vue3中的组件传值的方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. props
父组件使用 props 传递数据给子组件:

<!-- parent.vue -->
<child :msg="message"></child>

<!-- child.vue -->
<p>{{ msg }}</p>
// parent.vue
data() {
  return {
    message: 'Hello!'
  }
}

子组件使用 props 接收:

// child.vue 
props: ['msg']

2. emit 自定义事件
子组件触发事件,父组件监听该事件并更新数据:

<!-- parent.vue -->
<child @update="updateMessage"></child>

<!-- child.vue --> 
<button @click="emitUpdate">Update</button>

<p>{{ msg }}</p> 
// parent.vue
methods: {
  updateMessage(newMsg) {
    this.message = newMsg
  }
}
// child.vue
methods: {
  emitUpdate() { 
    this.$emit('update', 'Updated message!')
  }
}

3. refs
通过 ref 给子组件绑定引用,然后通过该引用直接更新子组件的数据或调用子组件的方法:

<!-- parent.vue -->
<child ref="child"></child>

<button @click="updateChildMessage">Update Child Message</button>
// parent.vue 
methods: {
  updateChildMessage() {
    this.$refs.child.msg = 'New message'
  }  
}

在 child 组件中:

export default {
  data() {
    return {
      msg: 'Initial message'
    }
  }
}

4. provide / inject
父组件提供数据,子组件注入并使用:

// parent.vue
provide: {
  name: 'Parent'
}

子组件:

// child.vue
inject: ['name']

console.log(name) // Prints "Parent"

最后总结一下:Vue 3 中组件传值主要的方式有:

1. props - 父传子
2. emit - 子传父
3. refs - 父访问子
4. provide/inject - 祖先传后代

这些方式可以组合使用,实现非常灵活的组件通信。文章来源地址https://www.toymoban.com/news/detail-726978.html

到了这里,关于vue3中的组件传值的方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue组件间传值的六种方法

    父组件代码: 子组件代码: 页面显示: 子组件代码: 父组件代码: 页面显示: 父子组件传值原理:父子组件的关系可以总结为 prop 向下传递,事件向上传递。父组件通过 prop 给子组件下发数据,子组件通过事件给父组件发送消息,如下图所示: ref:如果在普通的 DOM 元素

    2024年02月15日
    浏览(49)
  • vue3组件传值方法

    提示:vue组件传值学习用vue3语法 提示:以下是本篇文章正文内容,下面案例可供参考 1.在父组件中引入子组件并通过 components 注册 父组件内容示例: html 内容 js 内容 import child from \\\"../components/Child/Child\\\"; 子组件内容示例 html 内容 js 内容 props: { msg: { type: String, default: \\\"\\\", }, },

    2024年02月07日
    浏览(34)
  • vue3 父子组件传值 记录

    最近这个组件之间传值用的较多,我这该死的记性,总给忘记写法,特此记录下 补充:LeftView.vue 是父组件; Video.vue 是子组件 Video.vue 子组件 LeftView.vue 父组件 第一步 创建bus.js文件 第二步 分别在需要相互传参的组件中引入bus.js文件,并相互传参

    2024年02月11日
    浏览(42)
  • Vue3 TS写法 父子组件传值(通讯)

    父组件: 子组件: 通过defineProps来接受数据(无须引入直接使用即可) 子组件可写默认值也可以不写两种情况 子组件通过defineEmits派发一个事件 (一样无须引入直接使用即可)  父组件接受子组件的事件 chilFun

    2024年02月15日
    浏览(38)
  • vue2和vue3 子组件父组件之间的传值方法

    在组件化开发的过程中难免会遇见 子组件和父组件之间的通讯那么这里讲关于vue2和vue3不同的通讯方式 先看一下vue2 父组件向子组件传递参数 父组件通过 : 语法 其实就是v-bind 来传递参数 子组件通过 props 来获取父组件传递的方法 亿点小知识:子组件接收到数据之后,不能直接

    2024年02月09日
    浏览(45)
  • vue3父组件异步props传值,子组件接收不到值问题

    当我们使用vue3进行开发在创建组件的时候,子组件经常需要调用父组件的数据,那么这是就需要vue3的props进行对父组件与子组件通信来达到传值的效果 在使用props进行父子组件通信时,子组件无法成功渲染数据,导致拿到数据为空问题 提示:这里填写问题的分析: 在使用

    2024年02月11日
    浏览(38)
  • Axios传值的几种方式

    axios基本使用 默认是get请求 注意:get请求无请求体,可以有body,但是不建议带 使用get方式进行无参请求  使用get方式请求,参数值直接放在路径中    使用get方式请求,参数拼接在路径中:方式①   使用get方式请求,参数拼接在路径中:方式② 使用get方式请求,拼接多个参

    2024年04月17日
    浏览(37)
  • vue3 使用 mitt 插件实现非父子组件传值

    介绍 : mitt 是一个 JavaScript 库,用于实现事件的订阅和发布 1、安装 2、新建 utils/eventBus.ts 文件 3、使用

    2024年02月09日
    浏览(48)
  • Vue3 setup tsx 子组件向父组件传值 emit

    需求: Vue3 setup 父组件向子组件传值,子组件接收父组件传入的值;子组件向父组件传值,父组件接收的子组件传递的值。 父组件: parent.tsx : 子组件: TotalPreview.tsx : 页面效果:

    2024年02月13日
    浏览(38)
  • watch监听,解决Vue3父组件异步props传值,子组件接收不到的问题

    写静态数据的时候父组件传值子组件接收并渲染是没问题的,但当父组件异步获取数据,子组件接收数据会晚于渲染,就会产生接收不到的问题,我在用echarts绘制图表时图表就直接不显示  用watch监听props数据并在watch内进行赋值操作可解决该问题 直接上代码 父组件,vue3语法

    2024年02月15日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包