# vue composition api https://github.com/vuejs/composition-api option api 跟 composition api的寫法很不同。 目前的感受是,option api的程式邏輯太分散了,雖然可以很快找到 component 用到的資料方法,但是沒辦法把相關的資料及方法放在一起。 ## 嘗試當作 mixin 使用 目前還在嘗試寫成mixin的形式,但結果看起來跟mixin一樣,在component裡面很難快速找到程式寫在哪裡。 ## option api 寫法很適合 component 如果是共用的元件,通常不太會有複雜的流程,option api寫法可以很快地找到component用到的功能等等 ## composition api ### 要把 composition api 做共用怎麼做 要用composition api做共用的事情,其實把它當mixin寫不合適 應該要把功能拆出來寫成hooks,需要哪個功能再去引入該hooks 寫成hooks這段,你可以看這個repo最下面他有分析mixin跟hooks https://github.com/ShetlandJ/Vue3Todo 範例的code寫在這裡 https://github.com/ShetlandJ/Vue3Todo/blob/master/src/hooks/useTodos.js ### 目前購物車的 code 太複雜且龐大 option api的壞處是看不出相關程式的邏輯,必須反覆跳躍著看才懂什麼時候做什麼事情。 要盤點購物車實際運作的時候會做哪些事情 跟store相關的動作可以拆出來寫成hooks ### devtools 看不到相關參數 可以成功運作setup但是沒辦法在devtools看到我定義的資料(後來發現我裝的是min.js,就不會出現在devtools了) ## vue 2.7 vue 2.7 突然發布,主要是可以更新使用composition api,本來是打算用2.6+composistion api來實現,現在可以無痛使用了,不過目前在vue2.7寫composistion api,相關的參數沒辦法在vue devtools裡面看到,加上每天都還有新增小版號,露天要升上去可能要再等等。 ## vue 2.7 與 composition api ### steup 取得 Vue 的 instance vue 2.7 的 setup 沒辦法直接拿 vue 的 instance,要透過getCurrentInstance() 才拿得到 composition api 可以從 setup(props, context) 的 context.root 拿到 ### 方法在不同的地方 假如要使用ref, computed這些方法 vue 2.7 可以直接從 Vue 取得 composition api 必須從 VueComposistionAPI 取得 ### devtools支援度 用vue-2.7.10.min.js的話會看不到東西(生產環境),要用vue-2.7.10.js(開發環境) ~~vue 2.7 的相關參數還沒辦法在vue devtools看到,要再等等~~ composition api可以