<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          我為什么不再用 Vue,而改用 React?

          共 5034字,需瀏覽 11分鐘

           ·

          2020-08-04 16:17

          點(diǎn)擊上方“逆鋒起筆”,公眾號回復(fù) PDF
          領(lǐng)取大佬們推薦的學(xué)習(xí)資料
          作者 | Alexandre Lion
          譯者 | 王強(qiáng)
          策劃 | 李俊辰
          當(dāng)我走進(jìn)現(xiàn)代前端開發(fā)行業(yè)的時(shí)候,我做了一個(gè)每位開發(fā)人員都要做的決策:選擇一個(gè)合適的框架。當(dāng)時(shí)正逢 jQuery 被淘汰,前端開發(fā)者們不再用它編寫難看的、非結(jié)構(gòu)化的老式 JavaScript 程序了。前端正在走向一個(gè)時(shí)髦的,流行的,模塊化的 JavaScript 框架的新時(shí)代。所以我選擇了 VueJS。

          本文最初發(fā)布于 Medium 網(wǎng)站,經(jīng)原作者授權(quán)由 InfoQ 中文站翻譯并分享。

          下面就是我熱愛(現(xiàn)在還是愛著)VueJs 的原因所在。

          #  它將 HTML/CSS/JS 結(jié)構(gòu)結(jié)合到一起

          目前來看,這是 VueJS 最吸引人的優(yōu)勢。

          Vue 文件對初學(xué)者非常有吸引力。它易于理解,而且我們很容易將整個(gè) HTML 模板分解為許多 Vue 文件。我一眼就能看出來結(jié)構(gòu)(模板)、行為(腳本)和外觀(樣式)。
               
              

          #  Vuex 

          我開始了解狀態(tài)管理系統(tǒng)時(shí)是從 Redux 入門的。它很難學(xué),而且似乎過于復(fù)雜。但有了 Vuex,體驗(yàn)就太棒了。

          Redux 需要 action、reducer 和 store,而 Vuex 只有 action、mutation 和 store。相比 mutation,reducer 的邏輯實(shí)在很難理解,因?yàn)樵谖覍W(xué)習(xí)后者時(shí),很少見到優(yōu)秀的學(xué)習(xí)資源。在我看來,Vuex 對于新手來說更容易上手。

          # NuxtJS

          老實(shí)說,受 React NextJS 啟發(fā)的 NuxtJS 是我在 Vue 項(xiàng)目中的默認(rèn)框架。我喜歡 Nuxt 項(xiàng)目的約定優(yōu)于配置的架構(gòu)。

          頁面位于 page 目錄下。組件位于 component 目錄。存儲(chǔ)在 store 目錄中。中間件則在 middleware 目錄里,依此類推。

          所有注入都是透明的。所有配置都在 nuxt.config.js 里。太棒了!它使你可以輕松構(gòu)建啟用 SSR 的網(wǎng)站和 SPA。

          # 然而,我又試了一下 React

          在學(xué)習(xí) Vue 之前我也嘗試過 React,但后者初看上去太難學(xué)了。隨著時(shí)間推移,我更深入了解了狀態(tài)管理機(jī)制和 ES6 語言規(guī)范,于是我對 React 的看法也有了變化。

          我看到有很多文章在推薦 React,甚至我周圍的人都在談?wù)?React,所以我嘗試了一下。結(jié)果很不錯(cuò),于是我開始在項(xiàng)目中使用這個(gè)框架。下面是我眼中 React 一些最明顯的優(yōu)勢。

          1. 對 ES6 和 TypeScript 友好

          開發(fā)人員掌控類、接口和枚舉。所以我很容易就能理解 React 組件的工作機(jī)制,并知道該如何將其集成到應(yīng)用程序中。

          你也可以在 Vue 中使用 ES6 語法,但是 React 比 Vue 設(shè)計(jì)得更好。看一下如何在 React 中注冊組件:
               
          class MyComponent extends React.Component { render() { return(
          )
          }}
              

          對于 VueJS,你將一個(gè)對象傳遞給 Vue Component 函數(shù):
               
          Vue.component({ template: `
          `
          })
              

          也就是說,現(xiàn)代 React(2020 年)不再用到 class,而是使用函數(shù)式組件(和 hooks)。

          VueJs 現(xiàn)在提供了 TypeScript 支持。但這種支持不像 React 那樣自然,后者只需 一條命令 就能使用 CRA(Create React App)獲得 TS 支持。

          在 Vue 這邊,我們?nèi)匀恍枰恍в凶远x裝飾器和特性的第三方包來創(chuàng)建一個(gè)真正完善的 TypeScript 應(yīng)用程序,并且它的官方文檔并未包含入門所需的所有信息。

          2. JSX

          JSX 并非惡魔。有兩個(gè)流派:親 JSX 和反 JSX。我不想卷進(jìn)他們的戰(zhàn)爭。JSX 可以是天使也可以是惡魔,具體取決于你要如何使用模板。

          從我的角度來看,對于開發(fā)人員來說,編寫像下面這樣的 JSX 更加合乎邏輯:
               
          return (
          {students.map(student =>

          {student}

          )}
          )
              

          比 Vue 的方式更像 HTML:
               

          {{ student }}

              

          蘿卜青菜各有所愛;在我個(gè)人看來,JSX 更強(qiáng)大,更靈活。

          2. 省事的 Hooks

          我開始學(xué)習(xí)使用 React 組件做開發(fā)。問題在于,要?jiǎng)?chuàng)建單個(gè)組件作為一個(gè) React 組件類是很費(fèi)事的。
               
          class MyComponent extends React.Component { constructor(props) { super(props) this.state = { counter: 0 } } render() { return(
          )
          }}
              

          函數(shù)式組件讓你可以使用帶有 hooks 的局部狀態(tài)。它移除了很多樣板和無用的構(gòu)造器。
               
          function MyComponent() { const [counter, setCounter] = useState(0)
          return(
          )
          }
              

          React Hooks 簡化了狀態(tài)和其他 React 部件(如 useEffect)的應(yīng)用,現(xiàn)在我們用不著 componentDidMount 和 componentDidUpdate 了。一些開發(fā)人員喜歡 OOP 方法,所以繼續(xù)使用 class;而其他開發(fā)人員則偏愛函數(shù)式方法。你可以在項(xiàng)目中同時(shí)使用兩者!

          3. 社區(qū)

          偉大的項(xiàng)目背后都有很多偉大的頭腦。

          根據(jù)我的經(jīng)驗(yàn),React 的文檔、第三方工具和模塊要比 Vue 多得多。有時(shí),我會(huì)為很多 Nuxt 問題而掙扎許久,搜索解決方案的過程中還會(huì)發(fā)現(xiàn)很多 Next(React)主題。

          看看 Github 倉庫,數(shù)字可以說明一切。


          或它們各自的框架:

          如果社區(qū)能 更快 地修復(fù)錯(cuò)誤,那么你的代碼也就會(huì)更可靠。和你遇到相同問題的人越多,你解決問題的速度也會(huì)越快。

          # Vue 3 即將到來……

          Vue 3 中有很多重大更改,其中之一是 Composition API,有了它你就可以無需 Vuex 來管理狀態(tài);還有很多很棒的特性即將到來!關(guān)注公眾號 逆鋒起筆,回復(fù) pdf,下載你需要的各種學(xué)習(xí)資料。

          四月份,尤雨溪曾在直播中表示,目前的 Vue 3.0 已經(jīng)可以投入使用,但是要求開發(fā)者自己對穩(wěn)定性負(fù)責(zé)。他建議生產(chǎn)項(xiàng)目暫時(shí)不要上,新的、小的項(xiàng)目可以試水。

          那么,我喜歡 VueJS 嗎?是的。我喜歡 React 嗎?喜歡。React 比 Vue 更好嗎?那就見仁見智了。

           延伸閱讀
          https://medium.com/better-programming/why-did-i-quit-vue-for-react-65315285fd90
          10 個(gè) Vue 開發(fā)技巧,助力成為更好的工程師!
          2020,Vue 開發(fā)最佳指南,你都需要學(xué)點(diǎn)啥?
          React 團(tuán)隊(duì)全員罷工了?

               

          關(guān)注我,獲資源干貨

                
                 
          ?關(guān)注 程序員干貨分享

          贊+在看,小編感恩大家??
          瀏覽 78
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  男同精品一区二区三区 | 学生妹毛毛片 | 中文字幕A片无码免费看 | 国产精品77777 | 免费 无码 高清 |