要求用vue3 去掉this 重写下面代码 querySearch(queryString, cb) { console.log(queryString); const params = { loginName: queryString, }; selectFuzzypSysUser(params).then((res) => {//每输入一个字符调用一次接口 if (res.data.returnCode == "111111") { this.restaurants = res.data.data this.restaurants.forEach((item,index)=>{ item.value = item.loginName //关键处(数据处理) 此处要在数组对象中插入一个value属性值与数组返回的loginName一致。因为此组件只识别value属性并展示。 }) console.log(this.restaurants); cb(this.restaurants)//最后不要忘了把数据cb()出去 } }); },
时间: 2024-02-14 20:32:20 浏览: 138
详解vue中的computed的this指向问题
在Vue 3中,可以使用`ref`和`reactive`来代替`this`关键字,并使用`async/await`来处理异步操作。下面是重写后的代码:
```vue
<script>
import { ref } from 'vue';
import { selectFuzzypSysUser } from 'your-api-module';
export default {
setup() {
const restaurants = ref([]);
const querySearch = async (queryString, cb) => {
console.log(queryString);
const params = {
loginName: queryString,
};
try {
const res = await selectFuzzypSysUser(params);
if (res.data.returnCode === '111111') {
restaurants.value = res.data.data.map((item) => ({
...item,
value: item.loginName,
}));
console.log(restaurants.value);
cb(restaurants.value);
}
} catch (error) {
// 处理错误
}
};
return {
querySearch,
};
},
};
</script>
```
在重写的代码中,我们使用了`ref`来创建了`restaurants`引用,用于存储查询结果。然后,我们将`querySearch`函数定义为一个异步函数,并使用`await`关键字来等待异步请求的结果。最后,将处理后的数据通过`cb`回调函数返回。
请注意,示例中的`selectFuzzypSysUser`是一个示例性的异步请求函数,您需要将其替换为您实际的异步请求函数。
希望以上信息能够帮助到您!如果还有其他问题,请随时提问。
阅读全文