请问 vue3 input 绑定一个常量 value 后咋还能输入咧

2022-10-04 19:49:09 +08:00
 longjiahui

请问 vue3 中 input 怎么做控制输入内容的需求会比较好

<script>
export default {
}
</script>

<template>
	<input :value="1234" placeholder="edit me" />
</template>

类似这样,input 仍然是可以输入的 😢

1998 次点击
所在节点    Vue.js
19 条回复
cyrbuzz
2022-10-04 19:59:13 +08:00
创建一个变量,:value 换成 v-model ,或者新建一个变量,注册 input 事件。
biabia123456
2022-10-04 21:17:48 +08:00
做一个假的 input? 想让用户输入的时候 换成真的并聚焦
longjiahui
2022-10-04 22:32:55 +08:00
@cyrbuzz 附言里加了说明、我总觉得我的操作不太科学。
longjiahui
2022-10-04 22:33:48 +08:00
@biabia123456 现在想做的方法是 写个 input 组件模拟 vue2 时的特性来用,就是 binding 的 value 是啥,input 的输入框内容就显示啥。
skies457
2022-10-04 22:39:00 +08:00
加上 @keydown="$event.preventDefault()"?
longjiahui
2022-10-04 22:44:06 +08:00
@skies457 粗暴了点、input 事件不响应啦、响应 input 来修改内容还是比较方便的。
cxe2v
2022-10-04 22:50:59 +08:00
似乎你可以加 readonly
longjiahui
2022-10-04 22:53:24 +08:00
@cxe2v 试了呢、不响应 input
lsry
2022-10-05 00:47:26 +08:00
data.value 是變量當然可以修改了。如果不想讓用戶輸入,給 input 加 disable ,不喜歡樣式的話,自己改一下吧。如果讓用戶輸入特定的内容,可以加校驗。或者你詳述下需求。
renmu
2022-10-05 00:54:25 +08:00
没看懂你到底想做什么,v-model 不就能实现
renmu
2022-10-05 00:55:51 +08:00
没看懂你到底想做什么,v-model 不能实现吗?为什么自己实现了一遍 v-model
WhateverYouLike
2022-10-05 01:01:36 +08:00
WhateverYouLike
2022-10-05 01:22:41 +08:00
longjiahui
2022-10-05 01:32:25 +08:00
@WhateverYouLike yes !是可以的。我完全没想到 nexttick
大概习惯了 vue2 的方式,vue3 这种 input 绑定 value 不能固定下来的感觉不太舒适。
longjiahui
2022-10-05 01:34:04 +08:00
@renmu 给 input 绑定 value 无论如何 vue2 会显示 value 绑定的内容,但 vue3 就不一定了耶。可以参考内容和附言 1 ,2 的 demo
WhateverYouLike
2022-10-05 01:43:14 +08:00
@longjiahui Vue2 难道能 “固定” 吗?
longjiahui
2022-10-05 01:54:28 +08:00
@WhateverYouLike 刚试了不能耶 😢我为什么觉得 2 可以。哈哈哈哈哈哈哈、非常有可能是因为我一直用的是封装过的 element-ui 的 input 。
longjiahui
2022-10-05 01:54:48 +08:00
@renmu 是的,自己实现了一遍 v-model 💦
cyrbuzz
2022-10-05 12:08:03 +08:00
```
<script setup>
import { ref } from 'vue'
const data = ref('test');
function handleInput(e){
data.value = e.target.value
}


</script>

<template>
<input :value="data" @input="handleInput" placeholder="edit me" />
</template>
```

不用 v-model 这样不就好了嘛= =?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/884648

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX