父组件给子组件传参的时候我们先把子组件组册到父组件里面 如下
<template> <div> <zi :data="name" :BookProp="books" ></zi> //这个:号后面的名字就是到子组件里面的名字 </div> </template> <script> //导入子组件 import zi from ‘./zi.vue‘ export default { data(){ return{ name:‘‘, books:[ { ‘name‘:‘你好牛逼啊‘ }, { ‘name‘:‘就是你打个电话‘ }, { ‘name‘:‘真是垃圾啊‘ } ] } }, components:{ //注册子组件 zi:zi },
}
子组件获取数据
<template> <div><ul> <li v-for="k in BookProp" @click="testProp">{{k.name}}</li> //获取到数据接着遍历出来 </ul> </div> </template> <script> export default { props:["BookProp","data"], //获取父组件传来的数据 }
子组件给父组件传参 这里我们主要是用的是 $emit(子组件)
<template> <div> <input @click="setNum" type="button" value="给父组件传递值"> <li> <ul v-for="i in num" :key="i.name">{{i.name}} </ul> </li> </div> </template> <script> export default { name:"zizujian", props:["data"], data() { return { num : [{"name":"uzi"},{"name":"ming"},{"name":"xiaohu"},] } }, methods: { setNum(){ this.$emit(‘func‘,this.num) //这里写的名字,一会就是父组件里面前面的那个名字(重点) },
}
}
父组件
<template> <div> <p @click="getFunc">peter的测试父组件</p> <zizujian @func="getNum" ></zizujian> //这个func 就是刚刚子组件里面写的那个参数 </div> </template> <script> import zizujian from ‘./zizujian‘ export default { data() { return { data:[] } }, components:{ zizujian }, methods:{ getNum(val){ this.data=val //获取参数 console.log(val) //讲数据打印出来 } }, }
原文:https://www.cnblogs.com/qinzeiqinwang/p/13912620.html