【发布时间】:2021-01-28 07:27:10
【问题描述】:
我正在尝试实现对https://crudcrud.com/ REST API 的 PUT 请求。
我有一个用户列表,当我单击更新按钮时,我想显示一个模式并允许用户更新任何字段(名称、电子邮件、图像 URL)。主要担心的是我正在为如何格式化 PUT 请求而苦苦挣扎。
这是我目前的解决方案
// template (UserCrud.vue)
<button @click="update(user._id)">Update</button>
// script
components: { Create },
setup() {
const state = reactive({
users: [],
})
onMounted(async () => {
const { data } = await axios.get(`/users`)
state.users = data
})
async function update(id) {
await axios.put(`/users/${id}`)
state.users = ???
}
return { state, destroy, addUser }
这是一些示例数据:
[
{
"_id": "6012303e37711c03e87363b7",
"name": "Tyler Morales",
"email": "moratyle@gmail.com",
"avatar": "HTTP://linkURL.com
},
]
作为参考,这是我使用 POST 方法创建新用户的方式:
export default {
components: { Modal },
emits: ['new-user-added'],
setup(_, { emit }) {
const isModalOpen = ref(false)
const state = reactive({
form: {
name: '',
email: '',
avatar: '',
},
})
async function submit() {
const { data } = await axios.post('/users', state.form)
emit('new-user-added', data)
state.form.email = ''
state.form.name = ''
state.form.avatar = ''
isModalOpen.value = false
}
return { isModalOpen, submit, state }
},
}
查看此repo 以获得完整的 repo:文件是 UserCrud.vue 和 Create.vue
【问题讨论】:
标签: rest vue.js put vuejs3 vue-composition-api