uni-app小程序父组件和子组件传值
也•简 人气:0前言
1、父组件向子组件传值 → 通过数据绑定
2、子组件向父组件传值 → 通过事件
一、父组件向子组件传值
通过props实现,即:子组件通过props来接收父组件传过来的值
实现
父组件中:
1、引入子组件
2、注册子组件
3、通过标签形式载入;使用数据绑定进行传值
子组件中:
1、通过props接收父组件中传递过来的值
具体演示代码
父组件:index.vue
<template> <comA :list="listData"></comA> </template> <script> import comA from '@/components/comA.vue' export default{ components:{comA}, data(){ return{ listData:[ {"name": "刘", "age": "12"}, {"name": "肖", "age": "20"} ] } } } </script>
子组件:comA.vue
<template> <view> <block v-for="(item,index) in list" :key="index"> <view class="flex"> <text>{{item.name}}</text> <text>{{item.age}}</text> </view> </block> </view> </template> <script> export default { name: "comA", props:{ list:{ type: [Array], default: [] } }, data() { return {} }, } </script>
二、子组件向父组件传值
通过props实现,即:子组件通过props来接收父组件传过来的值
实现
父组件中:
1、引入子组件
2、注册子组件
3、通过标签形式载入;使用数据绑定进行传值
4、注册子组件函数
子组件中:
1、通过$emit()函数向父组件传值
具体演示代码
父组件:index.vue
<template> <comA @ChildClick="childClick"></comA> </template> <script> import comA from '@/components/comA.vue' export default{ components:{comA}, methods:{ childClick(e){ console.log(e) } } } </script>
子组件:comA.vue
<template> <view @click="sendValue"></view> </template> <script> export default { name:"comA", props:{}, methods:{ sendValue: function(){ // 向父组件传值 this.$emit("childClick","我来自子组件") }, } } </script>
总结
加载全部内容