vue3 uniapp 父子相传

父组件数据

<template>
	<view class="fu">
		<view class="fuzu">父组件自己的数据</view>
		<input type="text" v-model="num" placeholder="请输入">
		<view  class="zizu">
			子组件传过来的数据
		</view>
		{{isShow.age}}---{{isShow.sex}}
	
	</view>
	
	<view>---------------------------</view>

	<personalInformation :num='num' @but='but'></personalInformation>
	
</template>
<script lang="ts">
	import {reactive ,ref} from "vue"
	import personalInformation from '../personalInformation/personalInformation.vue'
	export default {
		components: {
		
			personalInformation
		},
		props:['but'],
		
		setup() {
		
			const isShow =reactive({
				age :  "年龄",
				sex : '性别'
			})
			
		
			const num = ref('')
			
			function but (e){
			// num.value = e.value
			isShow.age = e.age
			isShow.sex = e.sex
			}
			
			return {
			
				num,
				but,
				isShow

			}

		}
	}
</script>
<style>
	.fu{
		padding: 30px;
	}
	.fuzu{
		color: aqua;
		padding: 20px;
	}
	.zizu{
		color: blue;
		padding: 20px;
	}
</style>

子组件数据



<template>
	<view class="zi">
	   <view>子组件 输入区域</view>
	   	{{name.age}}-{{name.sex}}
		<input type="text" v-model="name.age"  placeholder="请输入年龄">
		<input type="text" v-model="name.sex"  placeholder="请输入性别">
		<view>父组件传过来的值 	{{num}}</view>
		<button @click="but">点击</button>
	</view>
</template>
<script>
import { reactive, ref  } from "vue"
	
	export default {
		emits:['but'],
		props:['num'],
		setup(props, context) {
			const name =  reactive({
				age :  '',
				sex :''
			})
			
			// const name = ref('')
			
			function but(){
				context.emit('but',name)
			}
			
			return{
				name,
				but
			}
			
		}
	}
	
	
</script>
<style>
	.zi{
	padding: 20px;
	
	}
</style>

效果展示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值