Vue组件通信传递数据的方式有哪些

发布时间:2023-04-21 15:40:18 作者:iii
来源:亿速云 阅读:113

今天小编给大家分享一下Vue组件通信传递数据的方式有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

Vue传值

Vue.js是一个组件化的前端开发框架,支持父子组件之间的消息传递和数据通信。子组件向父组件传递消息的过程称为“子传父”或“props down,events up”。

具体而言,在Vue.js中,每个组件都可以看作是一个独立的实例,它们之间可以通过特定的Props和Events属性进行双向绑定和通信。子组件在初始化时可以接收来自父组件的数据,并通过props属性绑定这些数据。当子组件需要向父组件发送事件或数据时,可以使用$emit方法触发相应的事件,然后由父组件定义的v-on指令监听并执行相应的操作。

以下是一些关于Vue中props$emit的常用概念:

总之,“子传父”是Vue中非常重要的一个概念,它可以帮助我们更好地维护组件间的数据和功能的分离,同时也能提高程序的可读性和可维护性。对于在实际开发过程中遇到的“子传父”的问题,需要按照Vue框架的规范和约定来解决问题。

传递数据的三种方式

方式一

通过父组件给子组件绑定一个自定义事件实现:子给父传数据(使用@v-on

子组件:通过$emit触发父组件上的自定义事件,发送参数

<template>
   <div class="son">
     <button @click="setValue">子传值</button>
   </div>
 </template>
 <script>
 export default {
   name: "son",
   data(){
     return {
       value:'子传父的内容'
     }
   },
   methods:{
     setValue(){
       this.$emit('son',this.value)//触发transfer方法,this.value为向父组件传递的数据
     }
   }
 }
 </script>

父组件:通过绑定自定义事件,接受子组件传递过来的参数

<template>
   <div class="parent">
     <p>父组件接手到的内容:{{ value}}</p>
     <Son  @son="getValue"></Son> 
      <!-- 监听子组件触发的自定义事件事件,然后调用getValue方法 -->
   </div>
 </template>
 <script>
 import son from './Son'
 export default {
   name: 'parent',
   data () {
     return {
       msg: '父组件',
       value:'',
     }
   },
   components:{son},
   methods:{
     getValue(value){
       this.value= value
     }
   }
 }
 </script>

方式二

props实现:子给父传递数据

子组件:

<template>
   <div class="son">
     <button @click="setValue">子传值</button>
   </div>
 </template>
 <script>
 export default {
   name: "son",
   props: ['getValue'],
   data(){
     return {
       value:'子传父的内容'
     }
   },
   methods:{
     setValue(){
       this.getValue('son',this.value)//this.value为向父组件传递的数据
     }
   }
 }
 </script>

父组件:

<template>
   <div class="parent">
     <p>父组件接手到的内容:{{ value}}</p>
     <Son  :getValue="getValue"></Son> 
   </div>
 </template>
 <script>
 import son from './Son'
 export default {
   name: 'parent',
   data () {
     return {
       msg: '父组件',
       value:'',
     }
   },
   components:{son},
   methods:{
     getValue(value){
       this.value= value
     }
   }
 }
 </script>

方式三

使用ref

子组件:

<template>
   <div class="son">
     <button @click="setValue">子传值</button>
   </div>
 </template>
 <script>
 export default {
   name: "son",
   data(){
     return {
       value:'子传父的内容'
     }
   },
   methods:{
     setValue(){
       this.$emit('son',this.value)//触发transfer方法,this.value为向父组件传递的数据
     }
   }
 }
 </script>

父组件:

<template>
   <div class="parent">
     <p>父组件接手到的内容:{{ value}}</p>
     <Son  ref="son" ></Son> 
      <!-- 监听子组件触发的自定义事件事件,然后调用getValue方法 -->
   </div>
 </template>
 <script>
 import son from './Son'
 export default {
   name: 'parent',
   data () {
     return {
       msg: '父组件',
       value:'',
     }
   },
   components:{son},
    mounted(){
      setTimeout(() =>{
        // 函数体
        this.$refs.son.$on('son', this.getValue)
      }, 3000)
   },  
   methods:{
     getValue(value){
       this.value= value
     }
   }
 }
 </script>

以上就是“Vue组件通信传递数据的方式有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

推荐阅读:
  1. vue如何实现变量本地化
  2. vue如何实现第三方插件按需引入

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

vue

上一篇:vue antd的from表单中验证rules中type的坑怎么解决

下一篇:antd vue表格可编辑单元格及求和怎么实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》