Vue2.0中使用v-el,v-rel出现问题

本文解决Vue2.0中v-el指令废弃问题,介绍如何使用ref属性代替,并强调正确命名规范,避免DOM查找失败。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

在高仿饿了么实战项目中使用v-el指令获取DOM,但出现下图的错误:

 

v-el指令

 

代码

template

 

template

script

 

script

 

问题原因:

在Vue2.0中弃用了v-el,v-rel指令

解决方案:

使用ref属性为元素或组件添加标记,然后通过this.$refs获取

ref被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的$refs对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例;

官网讲解:https://cn.vuejs.org/v2/api/#ref

使用rel="menu-wrapper"和rel="food-wrapper"以及this.$els替换为this.$refs后出现下图问题:

 

找不到dom

问题起因:

命名规范问题;

解决方案

需要将ref="menu-wrapper"和ref="food-wrapper"改为驼峰命名,即是:

rel="menuWrapper"和ref="foodWrapper"

修改后代码:

 

template

 



作者:小人物的秘密花园
链接:https://www.jianshu.com/p/6d1c0f82c401
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Vue 2.0中,可以使用Element UI库中提供的MessageBox组件来实现带有输入框和数字输入框的弹窗,并且可以使用正则表达式来验证输入的内容。 首先,需要在Vue项目中引入Element UI库,可以在HTML文件中添加以下代码: ```html <link rel="stylesheet" href="//unpkg.com/element-ui/lib/theme-chalk/index.css"> <script src="//unpkg.com/vue/dist/vue.js"></script> <script src="//unpkg.com/element-ui/lib/index.js"></script> ``` 然后,在Vue组件中使用MessageBox组件,并设置type为input或inputNumber,如下所示: ```javascript this.$prompt('请输入内容', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', inputPattern: /^[0-9]+$/, inputErrorMessage: '只能输入数字', inputType: 'number' }).then(({ value }) => { console.log(value); }).catch(() => { console.log('取消输入'); }); ``` 其中,inputPattern和inputErrorMessage分别表示输入框的正则表达式和验证失败的提示信息,inputType表示输入框的类型。 如果需要在弹窗中使用数字输入框,可以将type设置为inputNumber,并设置min、max、step等属性,如下所示: ```javascript this.$prompt('请输入内容', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', inputPattern: /^[0-9]+$/, inputErrorMessage: '只能输入数字', inputType: 'number', inputNumberOptions: { min: 1, max: 10, step: 1 } }).then(({ value }) => { console.log(value); }).catch(() => { console.log('取消输入'); }); ``` 其中,inputNumberOptions表示数字输入框的属性。 以上是在Vue 2.0使用MessageBox组件实现带有输入框和数字输入框的弹窗,并使用正则表达式进行验证的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值