uni-app学习笔记十二-vue3中组件传值(对象传值)

一.单对象传值

父组件定义对象的值

html 复制代码
<template>
	<view>
		<UserInfo :obj="userinfo"></UserInfo>
	</view>
</template>

<script setup>
	import {ref} from "vue"
	const userinfo = ref({
		name:"蛛儿",
		avatar:"/static/girl_004.jpeg"
	})
</script>

子组件中使用

javascript 复制代码
<template>
	<view class="userInfo">
		<image :src="obj.avatar" mode="" class="avatar"></image>
		<view class="username">{{obj.name}}</view>
	</view> 
</template>

<script setup>
	defineProps(["obj"])
</script>

效果:

在父组件中再添加一个子组件

javascript 复制代码
<template>
	<view>
		<UserInfo :obj="userinfo"></UserInfo>
        <UserInfo ></UserInfo>
	</view>
</template>

刷新页面报错,因为在第二个子件未指定对象,子组件也未指定默认值,所以报错。解决办法,在子组件中声明一个默认对象:

javascript 复制代码
<script setup>
	defineProps({
		obj:{
			type:Object,
			default(){
				return {name:"朱九真",avatar:"/static/girl_005.jpeg"}
			}
		}
	})
</script>

二.多对象传值

修改父组件代码

html 复制代码
<template>
	<view>
		<UserInfo v-for="(item,index) in girls" :obj="item"></UserInfo>
	</view>
</template>

<script setup>
	import {ref} from "vue"
	
	const girls = ref([
		{name:"周芷若",avatar:"/static/girl_001.jpeg"},
		{name:"小昭",avatar:"/static/girl_002.jpeg"},
		{name:"赵敏",avatar:"/static/girl_003.jpeg"},
		{name:"蛛儿",avatar:"/static/girl_004.jpeg"},
	    {name:"朱九真",avatar:"/static/girl_005.jpeg"},
	])
</script>

子组件维持不变

html 复制代码
template>
	<view class="userInfo">
		<image :src="obj.avatar" mode="" class="avatar"></image>
		<view class="username">{{obj.name}}</view>
	</view> 
</template>

<script setup>
	defineProps({
		obj:{
			type:Object,
			default(){
				return {name:"女6号",avatar:"/static/girl_006.jpeg"}
			}
		}
	})
</script>

效果:

部分展示不出来,需要拉滚动条才能展示。

相关推荐
云小逸27 分钟前
【nmap源码学习】 Nmap网络扫描工具深度解析:从基础参数到核心扫描逻辑
网络·数据库·学习
一只小小的芙厨2 小时前
寒假集训笔记·树上背包
c++·笔记·算法·动态规划
盐焗西兰花3 小时前
鸿蒙学习实战之路-Reader Kit构建阅读器最佳实践
学习·华为·harmonyos
深蓝海拓3 小时前
PySide6从0开始学习的笔记(二十七) 日志管理
笔记·python·学习·pyqt
xqqxqxxq3 小时前
Java Thread 类核心技术笔记
java·笔记
慎独4133 小时前
科学赋能,让孩子专注高效爱上学习
学习
LGL6030A3 小时前
Java学习历程26——线程安全
java·开发语言·学习
老师用之于民4 小时前
【DAY21】Linux软件编程基础&Shell 命令、脚本及系统管理实操
linux·运维·chrome·经验分享·笔记·ubuntu
iFeng的小屋4 小时前
【2026年新版】Python根据小红书关键词爬取所有笔记数据
笔记·爬虫·python
山岚的运维笔记4 小时前
SQL Server笔记 -- 第14章:CASE语句
数据库·笔记·sql·microsoft·sqlserver