考虑到这种设置,我不知道如何在换行文本输入中保留 Select .当我将文本光标设置在中间时,在键入后,由于重新渲染,光标会跳到末尾. 我可以通过设置来修复它
<input :key="1"/>
显然,这个选项使用creatElementBlock()
,结果是key:1, patchFlag:0
.
遗憾的是,将其分配给vnode无济于事
<script setup>
import { ref, withDirectives, vModelText} from 'vue'
const msg = ref('Hello world...');
const wrapper = (props, {slots}) => {
const out = slots.default();
out.forEach(vnode => (vnode.key = 1) && Object.assign(vnode.props ??= {}, {
'onUpdate:modelValue': text => props['onUpdate:modelValue'](text)
}));
return out.map(vnode => withDirectives(vnode, [[vModelText, props.modelValue]]));
};
</script>
<template>
<h1>{{ msg }}</h1>
<wrapper v-model="msg">
<input/>
</wrapper>
</template>