局限1:input只能控制输入内容为一行;textarea需要手动拖动改变大小。
实现:像 div, p这样的块元素默认是不可编辑的,但我们可以在标签内添加 contenteditable 属性设置为 true, 使其变为可编辑的。
contenteditable是一个全局属性,用于指示元素是否可被用户编辑,属性值可选true,false,空字符串。
- true 或者 ‘空字符串’, 表示该元素是可编辑的;
- false, 表示该元素是不可编辑的。
- 如果未设置此属性,则其默认值将从其父元素继承。
局限2:设置contenteditable之后不能使用v-model双向绑定。
解决:使用v-html和@blur解决
<p contenteditable="true"
v-html="name"
@blur="name=$event.target.innerText"></p>