位置:首页 > web前端 > vue

vue子组件向父组件传值的方法

dearweb 发布:2021-08-08 14:06:11阅读:

今天和大家分享一下父子组件之间通信,子向父集传值的方式。

组件代码

<!-- 父组件模板 -->
    <div id="app">
      <cpn :cinfo='info' @itemclick="topClick"></cpn>
    </div>

    <!-- 子组件模板 -->
    <template id="cpn">
      <div>
        <button v-for='item in categories' @click="itemClick(item)">{{item.name}}</button>
      </div>
    </template>

先在子组件中定义一个click事件,通过触发click事件用$emit()方法向父组件传输数据,父组件通过定义一个事件(注意事件名与子组件的click事件的方法名相同)来接收子组件传过来的值。

js代码部分

 //子组件
      const cpn = {
        template : "#cpn",
        props:{

        },
        data(){
          return{
            categories:[
              {id:"1",name:"热门推荐"},
              {id:"2",name:"手机数码"},
              {id:"3",name:"家用家电"},
              {id:"4",name:"电脑办公"}
            ]
          }
        },
        methods:{
          itemClick(item){
            // console.log(item);
            this.$emit("itemclick",item)
          }
        }
      }

      //父组件
      const app = new Vue({
        el:"#app",
        data:{
          info:{
            name:"bug",
            age:"18",
            sex:"男"
          }
        },
        components:{
          cpn
        },
        methods:{
          topClick(item){
            console.log(item.name)
          }
        }
      })

以上就是子组件向父组件传值的方法,你看懂了吗?

24人点赞 返回栏目 提问 分享一波

小礼物走一波,支持作者

还没有人赞赏,支持一波吧

留言(问题紧急可添加微信 xxl18963067593) 评论仅代表网友个人 留言列表

暂无留言,快来抢沙发吧!

本刊热文
网友在读
手机扫码查看 手机扫码查看