老师,分离出来写怎样才能实现点击提交后清空输入框?
来源:2-8 使用 Composition API 开发TodoList(2)
__Promise
2021-08-31 14:18:43
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://unpkg.com/vue@next"></script>
<style>
</style>
</head>
<body>
<div id="root"></div>
</body>
<script>
// input输入封装
const setInput = () => {
// 获取ref
const {
ref
} = Vue;
// ref响应式引用
const inputValue = ref('');
// 输入框事件监听函数
handleInputValue = (e) => {
inputValue.value = e.target.value
}
return {
inputValue,
handleInputValue
}
}
// list列表封装
const setList = () => {
// 获取reactive
const {
reactive
} = Vue;
// reactive响应式引用
const listValue = reactive([]);
// 列表按钮事件监听函数
const handleListValue = value => {
listValue.push(value)
}
// 删除列表项
const removeItem = index => {
listValue.splice(index, 1)
}
return {
listValue,
handleListValue,
removeItem
}
}
const vue = Vue.createApp({
setup() {
// 解构
const {
inputValue,
handleInputValue,
} = setInput()
const {
listValue,
handleListValue,
removeItem
} = setList()
// 返回
return {
inputValue,
handleInputValue,
listValue,
handleListValue,
removeItem
}
},
template: `
<div>
{{inputValue}}
<input @input="handleInputValue" :value="inputValue"/>
<button @click="handleListValue(inputValue)">提交</button>
</div>
<ul>
<li v-for="(item,index) in listValue" :key="item" @click="removeItem(index)">{{item}}</li>
</ul>
`
});
const vm = vue.mount('#root')
</script>
</html>2回答
同学你好,此方法是正确的,没有其他方法了。自己能够解决问题很棒哦!
祝学习愉快~
__Promise
提问者
2021-08-31

解决了,点击添加列表项的同时设置inputValue就可以啦
只是不知道还有没有其他方法
相似问题