VUE学习笔记 父子组件传值

父组件通过 props 向下传递数据给子组件;子组件通过 events 给父组件发送消息。

子组件向父组件传值

子组件使用 this $emit('自定义事件名',要传送的数据)向父组件传递数据。

1.template 模块里面直接使用this $emit('自定义事件名',要传送的数据)

2.事件里面使用this $emit,使代码结构更清晰


//这是子组件 editData.vue

<button @click="saveEdit =>$emit('saveEdit', this.saveData)">保存</button>

//或者

<button @click="editCancel">取 消</button>

methods: {

editCancel() {

  // this.$emit('editCancel',this.editVisible); // 带参数
  this.$emit('editCancel'); // 不带参数
    }

}

父组件中引入子组件, v-on(简写@)监听自定义事件

//这是父组件  index.vue
// 引入子组件
import EditData from "./editData.vue";
 components: { 
    EditData
  },
// 使用子组件
<EditData
    @saveEdit="saveEdit"
    @editCancel="事件名可自定义,为了方便就不改了"
/>

//JS
methods: {
  editCancel(data) {
      console.log(data)//data 传过来的参数
    }
}

父组件向子组件传值

父组件使用子组件时, 使用v-bind绑定数据,

//父组件
 <EditData
      :editVisible="editVisible"
      :formlist="list"
 />
//data数据
data() {
    return {
        list: {},
        editVisible: false,
    };
  },

子组件通过props接收传递的值

  // props简单接收
   props: ["editVisible", "list"]

//props 验证
//验证传入的 props 参数的数据规格,如果不符合数据规格,Vue 会发出警告。
 props: {
    editVisible:Boolean,
    list:{
      type: Object,  // 类型
      required: true // 必传,不能为空
    }
},
// 传过来的值也可以使用computed计算属性
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 夜在沉思 黎明还没睁开眼 须知路总是曲曲弯弯 每天听到的不全是好消息 有人生下来—有人离去 时而乌云笼罩 时而阳光...
    郭大牛阅读 1,618评论 35 84
  • 菜花黄了是江汉平原最具标志的春意,2018的春天不经意间就进入到最美的时分。 几个哥们相约出去转转,恰逢发小发来邀...
    漫效救心丸_007阅读 391评论 0 1
  • 你好! 我是阿里郎,初来乍到,做的不好的地方还请见谅。二十出头的年纪不到,就早已懂得生活并不是一帆风顺。 ...
    阿里郎_阅读 304评论 0 0
  • 01 今天是国庆,在30号的时候,就被告知国庆会有1110万人涌入杭州。打心眼里为杭州感到担忧,断桥说不定就成了真...
    初执文案阅读 642评论 0 2
  • 这段时间把钱钟书的《围城》看完了,本以为想写篇书评,写下个人的感想,但觉得本人自身的阅历不够,似乎还不够资格评论此...
    十郎阅读 338评论 0 1

友情链接更多精彩内容