怎么在vue中实现父子组件的参数传递?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
子组件如下,把要传给给父亲的值放在props中
template>
<!--底部导航-->
<div class="index-bbar">
<ul class="flex" >
<li v-for="(item,index) in liAry" :class="index==licurrent?'active':''">
<router-link :to="item.linkURl">
<span class="flex alignc flexdc">
<img :src="index==licurrent?require('../../' + item.urlActive):require('../../' + item.url)" class="img1" ><span>{{item.title}}</span>
</span>
</router-link>
</li>
</ul>
</div>
</template>
<script>
export default {
name: 'Bottom',
data () {
return {
}
},
props:['liAry','licurrent'],
methods: {
}
}
</script>
<style scoped>
@import "../../assets/public/css/top.css";
@import "../../assets/public/css/bottom.css";
</style>
父组件的调用的三部曲
首先引入子组件
import Bottom from '@/components/public/Bottom';
注入组件在components中注入
components: {Bottom}
在父亲中应用
<template>
<Bottom v-bind:liAry='lidata' v-bind:licurrent='guidecurrent'></Bottom>
</template>
到这里就结束了,是不是贼快
父组件在组件上定义了一个自定义事件childFn,事件名为parentFn用于接受子组件传过来的message值。
<!-- 父组件 -->
<template>
<div class="test">
<test-com @childFn="parentFn"></test-com>
<br/>
子组件传来的值 : {{message}}
</div>
</template>
<script>
export default {
// ...
data: {
message: ''
},
methods: {
parentFn(payload) {
this.message = payload;
}
}
}
</script>
子组件是一个buttton按钮,并为其添加了一个click事件,当点击的时候使用$emit()触发事件,把message传给父组件
<!-- 子组件 -->
<template>
<div class="testCom">
<input type="text" v-model="message" />
<button @click="click">Send</button>
</div>
</template>
<script>
export default {
// ...
data() {
return {
// 默认
message: '我是来自子组件的消息'
}
},
methods: {
click() {
this.$emit('childFn', this.message);
}
}
}
</script>
在子组件向父亲传值的时候,不可用router-link,不然接受不到父亲定义的函数
看完上述内容,你们掌握怎么在vue中实现父子组件的参数传递的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。