vue2和vue3 子组件父组件之间的传值方法

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

vue父组件子组件传值 vue2和vue3子组件父组件之间的传值方法

在组件化开发的过程中难免会遇见 子组件和父组件之间的通讯那么这里讲关于vue2和vue3不同的通讯方式

先看一下vue2

  • 父组件向子组件传递参数

父组件通过 :语法 其实就是v-bind 来传递参数
子组件通过 props来获取父组件传递的方法

亿点小知识:子组件接收到数据之后,不能直接修改父组件的数据。会报错

// 父组件 parent 像子组件传递 msg 值
<template>
    <Children :datum="'我是父组件的数据'"></Children>
</template>----------------------------------------------------------------------------------
// 子组件 接收 父组件 传递的数据
export default {
  // 写法一 用数组接收
  props:['datum'],
  // 写法二 用对象接收,可以限定接收的数据类型、设置默认值、验证等
  props:{
      datum:{
          type:String,
          default:'这是默认数据'
      }
  },
  mounted(){
      console.log(this.datum)// 我是父组件的数据
  },
}
  • 子组件向父组件传递参数 (这里同时讲了父组件向子组件传递方法)

父组件通过 @语法 其实就是v-on 来传递方法
子组件通过 $emit来获取父组件传递的方法 同时向父组件传递数据

<template>
    <Children @method="method"></Children>
</template>
<script>
  import Children from './Children';
  export default {
    components: {
      Children
    },
    methods: {
      method(data) { // 这里的 data 就是子组件传递的参数 如果参数拥有多个可以使用 ...语法获取参数
        console.log(data);// 子组件传递的参数
      }
    }
  };
</script>----------------------------------------------------------------------------------
// 子组件 传递给 父组件数据
export default {
   methods: {
      childMethod() { // 子组件通过 $emit 获取父组件传递的方法,然后携带数据传给父组件
        this.$emit('method',"我是子组件");
      }
    }
}
  • 父组件使用子组件的方法

vue2.0里面父组件调用子组件的方法是通过$refs实现的

//父组件
<template>
    <Children ref="child"></Children>
</template>
export default{
    import Children from './Children'
    export default{
        components:{
            Children 
        },
        mounted:{
            //调用子组件方法  这里要注意区分 child 是ref的名字
           this.$refs.child.getData(val)  //通过$refs找到子组件,并找到方法执行
        }
    }
}
以上就是 vue2 子组件父组件之间的通讯

vue3

相信能看懂 vue2的小伙伴 应该理解之间的通讯 这里我就直接在父组件和子组件进行通讯

  • 父组件
<template>
  <Children :title="我是父组件"  ref="childrenRef" @method="methodChildren"></Children >
</template>
<script lang="ts">
import Children from "./Children.vue"
import { defineComponent, ref } from "vue"
export default defineComponent({
  components: {
    Children ,
  },
  setup() {
    let msg = ref("")
    let childrenRef = ref() // 通过ref获取 子组件的实例
    
    let fun = () =>{
    	childrenRef.value.fatherFun()// 使用子组件的方法
    }
    let methodChildren = (val) => {
      msg.value = val // 这里val获取子组件传递的值
    }
    return {
      msg,
      methodChildren,
    }
  },
})
</script>
  • 子组件
<template>
  <!-- 点击调用父组件的方法 -->
  <button @click="fatherMethod">点击</button>
</template>
<script lang="ts">
import { defineComponent } from "vue"
export default defineComponent({
  name: "Children",
  props: {
    title: {
      type: String,
    },
  },
  setup(props, {emit}) {
    const fatherMethod= () => {
      emit("method", "传值给父组件")
    }
    const fatherFun= () => {
      console.log("我是子组件的方法")
    }
    return {
      fatherMethod,
    }
  },
})
</script>

以上就是前端vue2和vue3组件之间的通讯感谢大家的阅读
如碰到其他的问题 可以私下我 一起探讨学习
如果对你有所帮助还请 点赞 收藏谢谢~!
关注收藏博客 作者会持续更新…文章来源地址https://www.toymoban.com/news/detail-485148.html

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

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

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

相关文章

  • react自定义组件间的传值,if..else..判断,for循环(嵌套map使用),点击事件(Onclick),页面上事件实事传递参数(基础版)

    9.自定义组件间的传值 10.if..else..判断 11.for循环(嵌套map使用) 12.点击事件(Onclick) 13.页面上事件实事传递参数 14.关于export default function App()与export function App()的区别    export default不需要{}      import  Gallery from \\\'./Gallery.js\\\';    export function需要{}       import {Gallery} from \\\'./Galler

    2024年01月17日
    浏览(42)
  • vue父子组件之间传值的方法

    父传子 方式: props 效果: 把父组件的 fatherName 属性传入子组件,在子组件中使用 父组件代码: 子组件代码: 子传父 方式: $emit 效果: 在子组件触发事件,修改父组件的fatherName属性 父组件代码: 子组件代码: 兄弟传值 方式: eventBus.js 效果: 任意组件之间相互传值 代

    2024年02月09日
    浏览(46)
  • vue2中几种组件传值方法

    父组件在子组件标签中传入fatherMess,在子组件使用$emit,约定子传父事件名,将子组件的数据传递到父组件.通过按钮修改,可以发现,这里的传值是响应式的 步骤 : ​ 1.在父组件中给子组件标签添加属性 ​ 2.在子组件中使用props接受数据 ​ 3.子组件中使用数据,可以直接访问 父组件

    2024年02月22日
    浏览(37)
  • vue父子组件之间双向数据绑定的(vue2/vue3)

    vue父子组件之间双向数据绑定的四种方法(vue2/vue3) vue考虑到组件的可维护性,是不允许子组件改变父组件传的props值的。父组件通过绑定属性的方式向子组件传值,而在子组件中可以通过$emit向父组件通信(第一种方式),通过这种间接的方式改变父组件的data,从而实现子组

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

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

    2024年02月07日
    浏览(35)
  • vue组件之间的五种传值方法(父子\兄弟\跨组件)

    父传子 (自定义属性 props) 父组件向子组件传参,通过自定义属性的方式进行传参,在子组件中使用prop定义自定义的属性,然后在父组件中通过v-bind指令把需要传递的数据绑定在子组件上,那在子组件中props里面的自定义属性可以直接使用。 子传父 (自定义事件 this.$emit) 子组

    2023年04月08日
    浏览(79)
  • Vue3中子组件向父组件传值的方法

    父组件可以通过props向子组件传值, 子组件可以用过 emits(‘update:prop’, propValue) 修改父组件绑定在此Prop上父组件的值 本文演示了一个可以缓存分页大小(每页显示几行数据)的分页组件的使用, 它是对el-pagination做了一个简单的封装 如下是一个分页组件 核心: 在换页时通过 emit

    2024年02月16日
    浏览(39)
  • vue父子组件之间的传参的几种方式

    这是最常用的一种方式。通过props选项,在父组件中传递数据给子组件。在子组件中使用props声明该属性,就可以访问到父组件传递过来的数据了。 子组件向父组件传递数据的方式。在子组件中使用emit方法触发一个自定义事件,并通过参数传递数据。在父组件中监听这个事件

    2023年04月24日
    浏览(71)
  • Vue组件之间传值

    首先总结一下vue里面传值的几种关系: 如上图所示, A与B、A与C、B与D、C与F组件之间是父子关系; B与C之间是兄弟关系;A与D、A与E之间是隔代关系; D与F是堂兄关系,针对以上关系 我们把组件之间传值归类为: 1.父子组件之间的通讯 2.非父子组件之间的通讯(兄弟组件 隔代

    2024年02月09日
    浏览(40)
  • Vue 组件之间传值

    一、Vue 组件之间传值的主要方法 Vue 3 对于组件之间传递值的基本思想与 Vue 2 相似,但是有一些语法和 API 上的改变,主要的传值方法有以下几种: 1、父组件向子组件传值,使用 props:可以通过在子组件上绑定 props,然后在父组件中通过 v-bind 绑定相应的数据来传递数据。

    2024年02月02日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包