выводились в поля  текущие значение для name, age, job. Вот код: <template>
                  
                  
                      <div class="w-25 mt-2">
                  
                  
                          <div class="mb-2">
                  
                  
                              <input type="text" class="form-control" v-model="name" placeholder="name">
                  
                  
                          </div>
                  
                  
                          <div class="mb-2">
                  
                  
                              <input type="number" class="form-control" v-model="age" placeholder="age">
                  
                  
                          </div>
                  
                  
                          <div class="mb-2">
                  
                  
                              <input type="text" class="form-control" v-model="job" placeholder="job">
                  
                  
                          </div>
                  
                  
                          <div class="mb-2">
                  
                  
                              <button class="btn btn-primary">Update</button>
                  
                  
                          </div>
                  
                  
                      </div>
                  
                  
                  </template>
                  
                  
                  
                  
                  
                  <script setup>
                  
                  
                  import {ref, onMounted} from "vue";
                  
                  
                  import axios from "axios";
                  
                  
                  import {useRouter} from "vue-router";
                  
                  
                  
                  
                  
                  const id = ref(null);
                  
                  
                  const name = ref(null);
                  
                  
                  const age = ref(null);
                  
                  
                  const job = ref(null);
                  
                  
                  
                  
                  
                  const router = useRouter();
                  
                  
                  
                  
                  
                  onMounted(() => {
                  
                  
                      id.value = router.currentRoute.value.params.id;
                  
                  
                      getPerson(id.value);
                  
                  
                  });
                  
                  
                  
                  
                  
                  async function getPerson(id) {
                  
                  
                  
                  
                  
                      axios.get(/api/people/${id})
                  
                  
                          .then(res => {
                  
                  
                              name.value = res.data.name;
                  
                  
                              age.value = res.data.age;
                  
                  
                              job.value = res.data.job;
                  
                  
                          })
                  
                  
                  
                  
                  
                  }
                  
                  
                  
                  
                  
                  
                  
                  
                  </script>
                  
                  
                  
                  
                  
                  <style scoped>
                  
                  
                  
                  
                  
                  </style>
                  
                  
                
Не зовсім впевнений, але хіба не потрібно біндити динамічні поля?
Я просто понять пытался как show/update реализовать можно, особо не вникал в тонкости, но там проблема в другом была
Я так реализовал, не знаю насколько правильно с точки зрения vue. Вот код: <template> <div class="w-25 mt-2"> <div class="mb-2"> <input type="text" class="form-control" v-model="name" placeholder="name"> </div> <div class="mb-2"> <input type="number" class="form-control" v-model="age" placeholder="age"> </div> <div class="mb-2"> <input type="text" class="form-control" v-model="job" placeholder="job"> </div> <div class="mb-2"> <input @click.prevent="update" type="submit" class="btn btn-primary" value="Update"> </div> </div> </template> <script setup> import {onMounted, ref} from "vue"; import axios from "axios"; import router from "@/router.js"; import {useRoute} from "vue-router"; const name = ref(null) const age = ref(null) const job = ref(null) const route = useRoute() onMounted(() => { getPerson() }) function getPerson() { axios.get(/api/people/ + route.params.id) .then(res => { name.value = res.data.name age.value = res.data.age job.value = res.data.job }) } function update() { axios.patch('/api/people/' + route.params.id , { name: name.value, age: age.value, job: job.value, }) .then(res => { router.push({name: 'person.show'}) }) } </script> <style scoped> </style>
при update делать invalidate или optimistic update
Обсуждают сегодня