vue 之 父子组件传值


        vue的重点之一就是组件化,在开发过程中我们必须要考虑到的就是父子组件之间的传值问题。在这篇文章中我会跟大家分享一下,我在开发中对这方面问题的处理
一、 父组件向子组件传值
先看示例代码

//parent.vue(父组件)
<template>
    <div>
        <child :message="tochild"></child>
        <!-- <child v-bind:message="tochild"></child> -->
    </div>
</template>
<script>
    //引入头部组件
    import child from '../components/child.vue';
    export default {
        name: 'app',
        components: {
            child
        },
        data() {
            return {
                tochild:'to child message'
            }
        },
        methods: {},
        mounted () {}
    }
</script>
<style scoped>
</style>
//child.vue(子组件)
<template>
    <div></div>
</template>
<script>
    export default {
        name: 'child',
        props: {
                        message:{},
            //message:{
            //  type: String,
                //default: ''
            //}
        },
        data() {
            return {}
        },
        methods: {},
        mounted () {}
    }
</script>
<style scoped>
</style>

       如大家所见,我们在父组件中给子组件定义一个属性并赋值,在子组件中我们就可以通过props获取到对应属性所对应的值。
       在子组件文件中,我注释掉了几行代码,因为在在开发过程中有的时候我们并不能完全确定传过来的值的类型,一旦实际传输的值的类型与预计的不一样,就会报错,而且在传输odject、array类型的值时如果规定了type值,处理起来相对也会麻烦一些。所以这里我暂时选择不明确规定传输的值。

二、 子组件向父组件传值
示例代码

//parent.vue(父组件)
<template>
    <div>
        <child @toParent="toParentMsg"></child>
    </div>
</template>
<script>
    //引入头部组件
    import child from '../components/child.vue';
    export default {
        name: 'app',
        components: {
            child
        },
        data() {
            return {}
        },
        methods: {
            toParentMsg(data){
                console.log(data);
            },
        },
        mounted () {}
    }
</script>
<style scoped>
</style>
//child.vue(子组件)
<template>
    <div>
        <button @click="msgToParent"></button>
    </div>
</template>
<script>
    export default {
        name: 'child',
        data() {
            return {
                toParentMsg : 'success'
            }
        },
        methods: {
            msgToParent(){
                this.$emit('toParent', this.toParentMsg )
            }
        },
        mounted () {
            
        }
    }
</script>
<style scoped>
</style>

       在父组件文件监听子组件一个事件去触发一个函数方法,在下面的js中就可以通过这个函数方法获取到值。在子组件中我们通过emit方法给父组件传值,两个参数,第一个是触发的事件,第二是要传的值可以使各种类型。这样我们就完成了从子组件到父组件的传值。

面对命运不妥协,面对困难不退缩,这样才能做自己的英雄。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值