這段要貼在哪裡:先在自己的工作資料夾建立同名相對位置,再複製內容。
const {createApp,ref,reactive,computed,watch,onMounted,nextTick}=Vue;createApp({setup(){const form=reactive({name:"",budget:0});const status=ref("idle");const nameInput=ref(null);const errorBox=ref(null);const message=computed(()=>({idle:"尚未送出",loading:"正在處理",success:"測試送出成功",error:"請先輸入姓名"})[status.value]);watch(()=>form.name,()=>{if(status.value==="error")status.value="idle";});onMounted(()=>nameInput.value?.focus());async function submitForm(){if(!form.name){status.value="error";await nextTick();errorBox.value?.focus();return;}status.value="loading";window.setTimeout(()=>{status.value="success";},350);}return{form,status,message,nameInput,errorBox,submitForm};}}).mount("#form-app");