Lastor
[Coding][Vue3] 太有趣了,你以為我在寫 React?? 才不是,我在寫 Vue
https://imgs.plurk.com/QzN/WwM/I3HIHH0Dswk8208iPTsuGHQR6aP_lg.png
Lastor
前幾天嘗試了用 React 寫一個簡單的 demo,瞬間感覺 React 因為本質上是全 JS 的機制,所以 babel 可以比較容易配合 React JSX
Lastor
這讓 React 可以透過 CDN,很容易的在無 Node 環境下撰寫。而且 VScode 這類編輯器,對於 .jsx file 預設配有 ts type/react,所以智能提示也很健全,整個就很舒服
Lastor
這瞬間突然想到,那 Vue 呢....???
Lastor
就稍微研究了一下,Vue 有沒有辦法辦到類似的事情。很可惜的是,babel/standalone 是完全針對 React 的。對於 JSX.Element 的解析,是直接轉成 React 格式,所以無法跟 Vue 搭配
Lastor
Vue 生態系裡面,也有類似的 babel/vue-jsx 之類的玩意,但這些套件預設都是讓你在 node 環境下使用,所以不像 React 那邊擁有 CDN 的使用方式
Lastor
新版本的 Vue3 如果是透過 vue-cli 創建的話,似乎預設是支持 JSX 的
Lastor
後來轉個方向,嘗試了一下之前提過的 vue3-sfc-loader
FranckFreiburger/vue3-sfc-loader
Lastor
赫然發現,裡面的核心功能有一行.... JSX Support
Lastor
所以,直接拉這套件 CDN 下來,就可以直接在 .vue 檔案使用 JSX 了。該套件會像 babel 那樣,幫你編譯回純 JS
Lastor
至於想要在 .js file 底下寫,目前找不到方法。Vue 社群整體似乎還是傾向使用 .vue file 的
Lastor
====================
不過這樣子摸了一番,忽然體悟到 React 跟 Vue 的核心差異。React 基本上是以在 JS 建立虛擬 HTML 的方式在工作,所以無法像 Vue 那樣去控制 .html file 裡面已經寫好的 HTML
Lastor
而 Vue 則是走 HTML 預處理的路線,去獲取已經在 .html 裡面寫好的元素,然後再透過 JS 去編輯
Lastor
Vue 獲取下來的 html,會以 string 方式存放在 template 屬性裡面。所以也可以建立一個 DOMString,來餵給 Vue 使用
Lastor
.vue file 在做的事情,似乎只是把 template 單獨拉出來,讓 user 可以用 HTML 的方式去編寫 (CSS 先不考慮,沒研究到那)
Lastor
而 Vue 其實也有像 React 一樣,提供虛擬 HTML 的方式,也就是 render function
Render Functions | Vue.js
Lastor
老實說,這玩意我真的至今都沒用過..... 稍微 try 了一下,這個就跟 React 很像了,所以也伴隨著有支援 JSX.Element 的使用方式
Lastor
現在體感上,React 比 Vue 要好理解的感覺。React 不管用不用 create-react-app 在寫法上不會有太大差異。但 Vue 那邊,用不用 vue-cli,寫法就完全不一樣
doomleika
想問一下你對 GraphQL的看法
Lastor
這個沒有用過耶
doomleika
Lastor : Thanks ,現在我要刻兩邊的API弄得懷疑人生,想找有frontend深度經驗的人的意見
Lastor
doomleika : 隱約記得 GraphQL 好像有跟我們家後端聊過,他沒講得很細,只是我問他說推不推薦,他直接跟我說不推薦....XDD
Lastor
好像是說甚麼要改設定的時候很麻煩還怎樣的,有點忘了
doomleika
yeah ,hackernews上面正反意見都很多,現在我拿不定主意
載入新的回覆