美文网首页vuereact & vue & angular
Vue中 子组件与父组件之间的传值

Vue中 子组件与父组件之间的传值

作者: 你怀中的猫 | 来源:发表于2022-07-08 17:50 被阅读0次

一、子组件向父组件传值

  • 1、子向父传值 需要用到自定义事件 $emit。

  • 2、this.$emit('自定义的事件名')

  • 3、当自定义事件触发时,所绑定的函数,就能自动获得这个事件在创建的时候 所写的参数

  • 4、一般 子向父传值,自定义事件写在 子组件里面


    image.png
  • 5、然后在 父组件中 子标签上 触发这个自定义属性

  • 6、当触发自定义事件(byval)时,就能获取到自定义事件上所携带的数据(this.cdata)

  • 7、父组件中 子组件的标签上触发事件,由于事件的触发 必须绑定函数


    image.png
  • 8、所以在父组件中我们需要定义一个接收数据的函数,这个函数 可以自动获得 子组件中传递过来的参数(数据)


    image.png

二、父组件向子组件传值

  • 1、我们可以在子组件中的 props中定义变量

第一种写法有数据类型,type写什么数据类型,就能传递什么数据类型
如果你定义的数据类型不匹配,则会根据设置的数据类型强制转化


image.png

第二种写法 不规定数据类型时,按照下面的写法


image.png
  • 2、然后在父组件内使用 子组件props定义的变量传值

image.png
  • 3、子组件中可以直接将这个变量当做数据来使用

三、最后子传父、父传子的效果图

image.png

两组件的代码如下

子组件 Child.vue

<template>
    <div id="child">
        <h1>{{ msg }}</h1>
        <button @click="sendData">子向父传值</button>


        <!-- 父组件中的数据 -->
        <h2>{{ abc }}</h2>
        <h3>{{ aaa }}</h3>
    </div>
</template>

<script>
export default {
    name: 'Child',
    data() {
        return {
            msg: '这是子组件',
            cdata : '这是子组件中的数据',
        }
    },
    props : {

        abc : {

            // 定义父组件传递过来的数据类型
            type : String,
            requored : true,

            // 如果你定义的数据类型不匹配,则会根据设置的数据类型强制转化
        }
    },

    // 不规定数据类型时,按照下面的写法
    props: ["abc", 'aaa'],

    
    methods: {
        sendData() {
            console.log(this);
            // 子向父传值 需要用到自定义事件 $emit
            // this.$emit('自定义的事件名')

            // 当自定义事件触发时,所绑定的函数,就能自动获得这个事件在创建的时候 所写的参数

            this.$emit('byval',this.cdata);

        }
    }
}
</script>

<style lang="less" scoped>
#child {
    padding: 10px;
    border: 3px solid #007aff;
    width: 90%;
    height: 400px;
    margin: auto;
}
</style>>

</style>

父组件 Father.vue

<template>
    <div id="father">
        <h1>{{ msg }}</h1>
        <!-- 子组件中的数据 -->
        <h2>{{ data1 }}</h2>

        <!-- 子组件 -->
        <Child :abc="fdata" :aaa="aaa"    @byval="getdata" />
    </div>
</template>

<script>
// 引入子组件
import Child from '@/components/Child.vue';
export default {
    name: 'Father',
    data() {
        return {
            msg: '这是父组件',
            fdata: '这是父组件里面的数据1',
            aaa: '这是父组件里面的数据2',
            data1: '',
        }
    },
    components: {
        Child,
    },
    methods: {
        // 定义一个获取子组件传值的方法
        getdata(datas) {
            // datas 就是子向父传过来的数据
            // 由于函数内的参数 不能直接用于渲染
            // 所以我们需要在父组件的data中 定义一个变量
            // 来接收一下 子组件传递过来的参数
            this.data1 = datas;
        }
    }
}
</script>

<style lang="less" scoped>
</style>>
</style>

相关文章

  • Vue.js 父子组件传值 . 兄弟组件传值

    概述 vue中组件之间的传值传值情况主要有以下三种 父组件向子组件传值子组件向父组件传值兄弟组件之间相互传值或者是...

  • vue的父子传值和使用vuex兄弟传值

    在父组件中引入子组件 父传子 父组件 子组件 子传父 子组件 父组件 兄弟传值 兄弟之间可以通过vue官网的方法,...

  • 04vue2.0-Vue组件化-组件间的数据传递

    Vue组件之间传值 父组件向子组件传值 1.父组件向子组件传值 父组件发送的形式是以属性的形式绑定值到子组件身上。...

  • vue中父子组件传值

    vue中父子组件传值是经常使用的场景 父组件向子组件中传值 父组件 子组件 父组件向子组件中传值分三步1、在父组件...

  • vue 组件之间传值 父传子 子传父 todolist

    vue 组件之间传值 父传子 子传父 todolist

  • Vue组件传值

    vue组件传值 一、父组件向子组件传值方式: 1. 子组件中定义props,父组件向子组件props进行传值。 2...

  • (VUE3) 四、组件传值(父子组件传值 & 祖孙组件传值 &v

    1.父子组件传值 vue2中的父子组件传值:父组件: 子组件: vue3中的父子组件传值: 还是用props接收父...

  • Vue - 传值

    Vue 传值有两种:1)父组件向子组件传值(属性传值,Prop传值)2)子组件向父组件传值 一、父组件向子组件传值...

  • 2019-03-13

    vue父子组件传值,(父组件向子组件传值用prop ,子组件向父组件传值:子组件调用父组件方法值以参数的方式传递)...

  • 2019-03-13

    vue父子组件传值,(父组件向子组件传值用prop ,子组件向父组件传值:子组件调用父组件方法值以参数的方式传递)...

网友评论

    本文标题:Vue中 子组件与父组件之间的传值

    本文链接:https://www.haomeiwen.com/subject/yauvbrtx.html