如何使用u-view中的NumberBox组件

本文介绍了如何在Vue应用中创建一个可定制的数字输入组件,包括模板编写、props和数据管理,以及如何在父组件中引入和使用该组件,并实现父子组件之间的值传递。
摘要由CSDN通过智能技术生成

1、添加组件

<template>
	<u-number-box v-model="internalValue" @change="valChange">
		<view slot="minus" class="minus">
			<u-icon name="minus" size="12" color="#FFFFFF"></u-icon>
		</view>
		<text slot="input" class="input">{{ internalValue }}</text>
		<view slot="plus" class="plus">
			<u-icon name="plus" color="#FFFFFF" size="12"></u-icon>
		</view>
	</u-number-box>
</template>

<script>
	export default {
		props: {
			value: {
				type: Number,
				default: 1,
			},
			user_index: {
				type: Number,
				default: 1,
			},
		},
		data() {
			return {
				internalValue: this.value,
			};
		},
		watch: {
			value(newVal) {
				this.internalValue = newVal;
			}
		},
		onLoad(option) {
			console.log(option);
		},
		methods: {
			valChange(e) {
				this.$emit("update:value", {
					value: e.value,
					userIndex: this.user_index,
				}); // 触发事件,传递新值
			}
		},
	};
</script>

<style lang="scss" scoped>
	@import "/static/css/common.css";

	.minus {
		width: 0.8rem;
		height: 0.8rem;
		font-weight: bold;
		display: flex;
		justify-content: center;
		align-items: center;
		background-color: rgb(196, 152, 74);
		border-top-left-radius: 4px;
		border-bottom-left-radius: 4px;
		margin-right: 2px;
	}

	.input {
		width: 0.8rem;
		height: 0.8rem;
		font-size: 16px;
		color: #ffffff;
		background-color: rgb(196, 152, 74);
		display: flex;
		justify-content: center;
		align-items: center;
		margin-right: 2px;
	}

	.plus {
		width: 0.8rem;
		height: 0.8rem;
		font-weight: bold;
		display: flex;
		justify-content: center;
		align-items: center;
		background-color: rgb(196, 152, 74);
		border-top-right-radius: 4px;
		border-bottom-right-radius: 4px;
	}
</style>

2、在父组件引入组件

import customNumber from "@/components/number-box/number-box.vue";

//添加以下部分
components: {
	customNumber,
},

 3、在父组件中使用

<custom-number :value="re_obj.point" :user_index="re_obj_index" @update:value="updateUserPoint"></custom-number>

4、在父组件的js中添加回调函数,用来更新父组件的值

updateUserPoint({
				value,
				userIndex
			}) {
				// 接收子组件传递的新值
				console.log(value, userIndex);
				this.questionFormData.re_obj_list[userIndex].point = value;
				console.log(this.questionFormData);
			},

 

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值