Tay*_*lor 2 javascript vue.js axios vuejs3 vue-composition-api
我正在组件的 Setup 方法中进行 Axios 调用。然后我想设置一个名为 books 的变量。在 vue 2 中,我将在创建的钩子中进行调用,然后用于this设置变量。this在 vue 3 中,setup 方法中没有可用的内容,那么如何在 axios 调用之外访问数据呢?我想获取一系列书籍,然后将其设置为 books 变量。如何做到这一点?在 Vue 3 中是否有更好的方法来做到这一点?我的设置方法如下:
setup() {
let books = reactive<Array<Book>>([])
HTTP.get('/books')
.then(response => {
//Normally here I would do this.books
books = response.data
})
.catch(function (error) {
console.log(error);
})
return { books }
}
Run Code Online (Sandbox Code Playgroud)
反应式
接受一个对象并返回原始的反应式代理......
ref
接受
一个内部值并返回反应式且可变的 ref 对象。ref 对象有一个指向内部值的属性 .value ...
所以该reactive函数应该有一个内部属性:
setup() {
let state = reactive<Array<Book>>({books:[]})
HTTP.get('/books')
.then(response => {
state.books = response.data
})
.catch(function (error) {
console.log(error);
})
return { books:toRef(state,'books') }
}
Run Code Online (Sandbox Code Playgroud)
或使用ref
setup() {
let books = ref<Array<Book>>([])
HTTP.get('/books')
.then(response => {
books.value = response.data
})
.catch(function (error) {
console.log(error);
})
return { books }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4351 次 |
| 最近记录: |