Quasar之q-tree选择节点

话不多说,直接上代码。

<q-tree
	:nodes="testData"
	node-key="label"
	default-expand-all
	v-model:selected="selected"
	no-connectors
	@click="handleClick"
/>

备注:default-expand-all- -初次渲染展开全部节点
no-connectors- -无连接线
v-model:selected=“selected”- -选择的节点(官方文档是用的:selected.sync=“selected”,可以查看Quasar q-tree。.sync和v-model实现效果在这里基本一致,都可以实现父子组件中的数据的双向通信。 )

Tips:v-model和.async本质上都是实现双向绑定的语法糖,vue3子组件中自定义实现v-model的方法改为和.sync一致,因此去除.sync,直接用v-model代替。

js部分代码:

setup(props, ctx) {
		const selected = ref(null);
		
		const testData = ref([
			{
				label: "娱乐",
				children: [
					{
						label: "看视频",
						children: [
							{
								label: "腾讯",
								children: [
									{
										label: "哔哩哔哩"
									}
								]
							},
							{
								label: "听歌",
								children: [{ label: "网易云" }]
							},
							{
								label: "玩游戏",
								children: [{ label: "LOL" }]
							}
						]
					}
				]
			}
		]);
		// 选择
		const handleClick = () => {
			console.log("您当前所选择的是:", selected.value);
			ctx.emit("getList", selected.value);
		};
		return {
			handleClick,
			testData,
			selected
		};
	}

最后看效果图:
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rayong有分享

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值