vue3代碼setup中this為什么無效


結論:setup並沒有通過各種方式去綁定this

vue2,我們可以在optionsApi中調用this來指向當前組件的實例,但是在vue3的setup中並不能這樣做,因為setup位於組件創建成功后但是並沒有解析datacomputedmethods中間,所以他們無法從setup中調用this去獲得

源碼閱讀

1.vue源碼核心部分

image-20211021170443416

2.setup位置

runtime-core內的component文件中,我們發現setup僅在實例創建成功后就開始執行了。

image-20211021172235131

在調用setup中並沒有進行值綁定image-20211021173617069

3.執行順序

調用 createComponentInstance 創建組件實例;

調用 setupComponent 初始化component內 部的操作;

調用 setupStatefulComponent 初始化有狀態 的組件;

setupStatefulComponent 取出了 setup 函 數;

通過callWithErrorHandling 的函數執行 setup;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM