本頁只練什麼
能以 ref 管會整體替換的搜尋字,以 reactive 管逐欄修改的表單物件,並用 isRef/isReactive 驗證。
選擇與更新方式不一致會出現漏寫 .value、解構失去反應性或整個 reactive 參照被替換的錯誤。
要修改的檔案:files/starter/main.js
定位:先用 isRef/isReactive 檢查容器,再依容器選更新語法。|依 starter-2 定位,只修改「ref 與 reactive 選擇」的責任。
LESSON-20 · TOPIC 02
能以 ref 管會整體替換的搜尋字,以 reactive 管逐欄修改的表單物件,並用 isRef/isReactive 驗證。
能以 ref 管會整體替換的搜尋字,以 reactive 管逐欄修改的表單物件,並用 isRef/isReactive 驗證。
選擇與更新方式不一致會出現漏寫 .value、解構失去反應性或整個 reactive 參照被替換的錯誤。
要修改的檔案:files/starter/main.js
定位:先用 isRef/isReactive 檢查容器,再依容器選更新語法。|依 starter-2 定位,只修改「ref 與 reactive 選擇」的責任。
先結果,再原理;完成後要能說出自己看見的證據。
把 reactive form 重新指派成新物件後,畫面仍顯示舊值。
起始狀態:query 空字串、form.email 空字串。
queryIsRef=true、formIsReactive=true、queryAfter=vue、emailAfter=david@example.com。
驗收證據:queryIsRef/formIsReactive=true,queryAfter/emailAfter 正確
搜尋字、選取 id 等單值用 ref;同一表單物件多欄位就地更新時可用 reactive。
常見混淆:兩者都能處理物件;選擇重點是團隊更新方式與是否需要整體替換,不是硬性型別限制。
這段程式是理解起點,不是要你直接跳過 Starter。
一個會整包換掉的值用 ref;同一份物件裡逐欄改動可用 reactive。
正式說法:ref 將任意值包成 Ref;reactive 以 Proxy 對物件屬性追蹤讀寫,回傳的 proxy 應持續被使用。
const query=ref(''); const form=reactive({email:''}); query.value='vue'; form.email='david@example.com'。每一步都留下可觀察結果;如果沒看到,先看「卡住先查」。
檔案:files/starter/main.js 定位:先用 isRef/isReactive 檢查容器,再依容器選更新語法。
要做:先重新載入 Starter,記錄目前畫面、DOM、Computed、Console 或文件內容。
預期:能指出「先用 isRef/isReactive 檢查容器,再依容器選更新語法。」目前的缺口。
證據:保存 files/starter/main.js 的目前狀態,並指出下一步只會修改哪個檔案責任。
卡住先查:確認開啟的是 files/starter/main.js,且定位到 先用 isRef/isReactive 檢查容器,再依容器選更新語法。。
檔案:files/starter/main.js 定位:先用 isRef/isReactive 檢查容器,再依容器選更新語法。
要做:建立兩種容器並各更新一次,輸出型別判斷與更新後值。
預期:queryIsRef=true、formIsReactive=true、queryAfter=vue、emailAfter=david@example.com。
證據:queryIsRef/formIsReactive=true,queryAfter/emailAfter 正確
卡住先查:先用 isRef/isReactive 檢查容器,再依容器選更新語法。
檔案:files/starter/main.js 定位:先用 isRef/isReactive 檢查容器,再依容器選更新語法。
要做:重新整理頁面,再逐項比對預期結果與 evidence。
預期:queryIsRef=true、formIsReactive=true、queryAfter=vue、emailAfter=david@example.com。
證據:queryIsRef/formIsReactive=true,queryAfter/emailAfter 正確
卡住先查:先用 isRef/isReactive 檢查容器,再依容器選更新語法。
這個示範只讓你看懂概念,不會替你修改 Starter,也不會自動宣告完成。
勾選只是學習紀錄;真正完成仍要回到 Starter 的實際結果。
搜尋字需要 .value;reactive 欄位直接改 property。
query.value='vue';form.email='david@example.com'。
完整解答與原因:query 用 ref 以 .value 整體替換,form 用 reactive 保留 proxy 並修改 email 屬性;isRef/isReactive 都應為 true。