据 《Vue.js 实战》 实例 开发一个数字输入框组件

开发一个数字输入框组件

作用

数字输入框是对普通输入框的扩展,用来快捷输入一个标准的数字

基本需求

只能输入数字,而且有两个快捷按钮,可以直接减1或加1。除此之外,还可以设置初始值、最大值、最小值,在数值改变时,触发一个自定义事件来通知父组件。

目录文件组成

  • index.html 入口页
  • input-number.js 数字输入框组件
  • index.js 根实例

思路梳理

阶段一

在组件中 有三个字段 max min value(默认值)
因为是独立组件,所以要对每个 prop进行校验。(通过prop向子组件传递数据)

在 index.html 中 引入input-number 组件

代码如下 <input-number v-model="value" :max="10" :min="0"> </input-number>
v-model 双向绑定 value
:max :min 向子组件props中传递数据

Vue组件单向数据流问题

无法从组件内部直接修改 prop value的值
故 在子组件中 声明一个 data 引用 value的值 在组件内部进行维护
在 子组件中 data需要写一个function进行return

data:function(){
		return{
			currentValue:this.value
		}

阶段二

实现父组件修改了 value currentValue 同步 使用watch进行监听
  1. 监听 value 要知晓从父组件修改了 value
    在父组件里修改 value,即修改 data中的 value吧 (暂时理解)

  2. 监听 currentValue 是为了 当currentValue 改变时 ,更新value
    代码如下

在这里插入代码片
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值