vue父子组件间传值

最近因项目需求接触了vue,本人是后端开发,对vue很是陌生,别人的代码,搜索与列表是写成了两个vue组件,导致列表中的分页查询拿不到搜索框中的值,研究了两天,在这里记录一下,谁曾想到一个后端程序员写的第一篇博客是前端的(手动滑稽),因源代码拿不出来,在这里写个demo:

一、父组件向子组件传值,

比如要在父组件的1中输入值,同时子组件能在2中接受并显示,如下图:

 

1、创建一个父组件fu.vue和一个子组件zi.vue

在fu.vue中导入zi.vue 并自定义为child3,然后在components中注册child3,接下来在<template>标签中引入子组件标签<child3>

2、父组件向子组件传值需要用到props:['message2'],参数message2为子组件期望接受的属性值,这个属性值需要在父组件中进行绑定,使用v-bind:message2="message",这里message为父组件的标签属性,代码如下:

<template>
  <div>
    <p>父组件 :<input v-model="message" v-show="true"></p>
    <child3 v-bind:message2="message" ></child3>
    <!-- <child3 v-on:event='resp' ></child3> -->
  </div>
</template>
<script>
  import child3 from '@/components/zi.vue'
  export default{
    components:{
      child3
    },
    data(){
        return {
            message: '123' //初始化message
        }
    },
    methods:{
        // resp(data){
        //     alert(data)
        // }
    }
  }
</script>

 

子组件zi.vue

<template>
    <div>
        <p>子组件 :接受的值:{{message2}}</p>
        <!-- <button v-on:click="up" >向父组件传值</button> -->
    </div>
</template>
<script>
  export default{
    props:['message2'],
    methods : {
        // up (){
        //     this.$emit('event','121212')
        // }
    }
  }
</script>

保存后看一下效果:

二、子组件向父组件传值

1、在子组件中添加一个按钮,用来触发事件

2、在事件up中使用$emit(param1,param2),param1为父组件要监听的事件,param2为要给父组件传递的值。

3、在父组件中添加监听子组件的标签,在标签中使用    v-on:event='resp',event为子组件中的事件,resp为父组件接收到参数后的响应事件,在这里我们把参数alert出来

4、保存后看效果

这样,我们就可以在子组件中向父组件传值了

三、总结

1、父向子传值,父组件中要绑定要发送的属性值,子组件要使用props:[param]接受期望得到的属性值;

2、子向父传值,子组件使用$emit('param1','param2'),创建事件,在父组件中监听该事件,接收到值后自定义响应事件;

3、不管是那个方向的传值,都需要在父组件中注册子组件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值