日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

用 React/Vue 不如用 JQuery,你知道嗎?

來源: 責編: 時間:2024-03-18 09:32:57 231觀看
導讀事情的起因是這樣的,有一個粉絲朋友跟我述說了她的焦慮:都 2024 年了,她的團隊還在用 jQuery 開發項目,她覺得自己距離 React、距離 Vue 好遙遠。覺得自己是被時代拋棄的棄子,她目前的狀態就是每天都活在極度的焦慮當中,每

zZn28資訊網——每日最新資訊28at.com

事情的起因是這樣的,有一個粉絲朋友跟我述說了她的焦慮:都 2024 年了,她的團隊還在用 jQuery 開發項目,她覺得自己距離 React、距離 Vue 好遙遠。覺得自己是被時代拋棄的棄子,她目前的狀態就是每天都活在極度的焦慮當中,每次聽到有人說行情不好,或者哪哪家公司又在裁員,都感覺心驚肉跳。zZn28資訊網——每日最新資訊28at.com

為了從根上解決她的焦慮,于是就有了這個標題。我知道看到這個標題,很多人第一反應是不理解,jQuery 不就是遠古時代的產物嗎,不都已經被淘汰了嗎?它能比 React/Vue 更好?這不會是一篇標題黨的文章吧?zZn28資訊網——每日最新資訊28at.com

但,我要非常明確的是,這不是標題黨,而是在說一個客觀事實。接下來,我來給大家分析一下,為什么 jQuery 比 React/Vue 更好。zZn28資訊網——每日最新資訊28at.com

一、技術選型的核心目的

作為一個前端開發,在搞技術選型的時候,一定一定要記住,我們有兩個核心目標,一個是能夠更高效更舒適的開發項目,而另外一個,就是要在開發項目的過程中,凝聚出屬于你自己的核心競爭力。第一個目標更多的是偏向于團隊,第二個目標更多的是要偏向于個人,你想要有一個持續的,健康的職業生涯,這兩者缺一不可。只是說,第二個目標只能憋在心里,不能廣而告之。zZn28資訊網——每日最新資訊28at.com

然而事實上,許多人,不管是主動選擇,還是被動選擇,往往只關注了第一個目標,而忽略了第二個目標。有的人是憋著不說,有的人是壓根想不到。這就導致了,這些想不到的很多人,用 Vue/React 用久了,會感覺自己變成了一個廢物,演變成一年經驗用七年。zZn28資訊網——每日最新資訊28at.com

這種情況在 Vue 使用者的身上會體現得更加明顯。zZn28資訊網——每日最新資訊28at.com

當然,我不是在說所有人,而是大多數人zZn28資訊網——每日最新資訊28at.com

所以有的人雖然沒有剛才那個同學那種焦慮情緒,也很熟練的在使用 React/Vue,但就是想要獲得一個 offer 還是非常困難。因為他們雖然已經熟練使用 React/Vue 開發頁面,但這就是一個普通的頁面仔啊,工作了 five 年,沒有凝聚出核心競爭力,成了一個廢物。zZn28資訊網——每日最新資訊28at.com

因此在做技術選型的考慮上,在我的選擇序列里,React 永遠都要比 Vue 更值得選擇,只因為 React 離原生 JavaScript 更近,沒有創造更多的語法,沒有那么多黑箱操作,自由度更高。這讓我有更多的機會在開發項目的過程中,做到提高開發效率的同時,還能兼顧自己核心競爭力的提升。zZn28資訊網——每日最新資訊28at.com

而在這兩個點的權衡上,jQuery 實際上可以做得更好。zZn28資訊網——每日最新資訊28at.com

二、我們陷入了 React/Vue 的騙局

React/Vue 最核心的東西,就是組件化。能借助 webpack/vite,在 JS 模塊中,把其他靜態資源當成模塊引入,從而在大型項目中,提高文件結構的可讀性和易用性。并利用數據驅動 UI 的方式,在一定程度上簡化了開發負擔。zZn28資訊網——每日最新資訊28at.com

但是,我們在學習 React/Vue 時,都被他們騙了。React/Vue 說,我們要構建一個大型項目,需要一個全局狀態管理器,我們應該把所有的狀態都放到頂層的 store 里。于是 redux 成為了入門 React 必學的技術棧。然而事實上,全局狀態管理,我覺得是一種弱智的,簡單粗暴的解決方案,他能夠讓你在思考組件拆分的時候,完全不考慮數據的歸屬問題,反正隨便放在哪里都能輕松訪問。zZn28資訊網——每日最新資訊28at.com

以致于,大部分的前端開發,都是被這種騙局培養成了高效低能的開發者,不管你是用 React,還是用 Vue,有可能都沒有逃過這個騙局。當你還在和別人爭論 React、Vue 誰會淘汰誰的問題時,你可能還沒有發現,這兩個家伙構建了一個非常堅固的信息繭房,把所有的前端都圈在里面,然后合伙把你淘汰掉。zZn28資訊網——每日最新資訊28at.com

所以我認真的思考了一下,真的有很多數據需要全局共享嗎?zZn28資訊網——每日最新資訊28at.com

所以在很多年前,當我經驗逐漸豐富起來的時候,我在其他客戶端開發解決方案中,見識了更多的開發模式,然后我發現了這個騙局。我們大多數項目,并不需要全局狀態管理。甚至也不需要邏輯那么笨重的數據驅動。zZn28資訊網——每日最新資訊28at.com

三、數據驅動的本質

當全局狀態管理沒那么有必要的時候,也就意味著,我們的項目數據結構不會那么復雜,所以數據驅動 UI 這個事情,帶來的好處,就顯得非常有限了。zZn28資訊網——每日最新資訊28at.com

在 React 中,你這樣寫:zZn28資訊網——每日最新資訊28at.com

function Hello() {  const [year, setYear] = useState(2024)  function clickHandler() {    setYear(year + 1)  }    return (    <div>      <div>hello {year}</div>      <button onClick={clickHandler}>++</button>    </div>      )}

當我們利用 jQuery 如何寫呢,看一下代碼:zZn28資訊網——每日最新資訊28at.com

<script id="temp" type="text/x-jsrender"><div>hello {{:year}}</div><button id="increament" onclick="hello()">++</button></script>
var data = {  year: 2014};function hello() {  data.year += 1  template.link("#result", data);}var template = $.templates("#temp");template.link("#result", data);

注意看,我們其實也可以利用了 jQuery 生態中的模板語言來代替 DOM 操作,達到類似的目的。我們可以相對清晰的知道當我要改變一個數據時,有兩個事情要完成,一個是改變數據,一個是重新修改 UI.zZn28資訊網——每日最新資訊28at.com

我們也可以縮小修改的范圍,從而達到最極限的性能,自由度非常高。zZn28資訊網——每日最新資訊28at.com

function hello() {  data.year += 1  $('#label').text(`hello ${data.year}`)}

在復雜度和性能之間,我們可以自由的做出取舍。我們完全沒有必要在所有場景,都去花費那么大的代價去考慮如何將數據與 UI 綁定在一起。不管是 Vue 的依賴收集,還是 React 的 diff,在這上面都花費了大量的心思,增加了巨大的心智負擔,關鍵邏輯還變成了黑箱操作。zZn28資訊網——每日最新資訊28at.com

四、React 的 返祖現象

事實上,熟悉 React 新官網的朋友應該知道,React 已經開始出現返祖現象了。也就是官方文檔把 useEffect 定性為一種逃脫方案。當我們發生點擊事件時,如果需要修改其他的邏輯,新官方文檔建議我們不要去修改狀態,而是直接把邏輯寫在回調函數里zZn28資訊網——每日最新資訊28at.com

// 官方文檔不推薦useEffect(() => {  loading && api().then(() => {})}, [loading])function clickHandler() {  setLoading(true)}
// 官方文檔推薦function clickHandler() {  setLoading(true)  api().then(() => {})}

我為什么要稱這種方式為返祖現象呢,因為你熟悉 jQuery 的使用的話,你就會發現這本身是再正常不過的邏輯了,但是新的官方文檔確要花費大量的篇幅去解釋為什么應該這樣做。這在我看來是非常詭異的事情。zZn28資訊網——每日最新資訊28at.com

然后呢,我又要花大量的心思去解釋我為什么不認同官方文檔的這種觀點。zZn28資訊網——每日最新資訊28at.com

五、當我們在 jQuery 中能自定義組件時

我們要達成的一個共識就是,單向數據流是一個被包裝出來的高大上概念。說白了就是函數的嵌套執行。zZn28資訊網——每日最新資訊28at.com

注意看這段代碼:zZn28資訊網——每日最新資訊28at.com

function Parent(data) {  const {pname, ...otherName} = data  return (    `<div>${pname}</div>${Children(otherName)}`  )}function Children(name) {  const {cname, ...otherName} = name  return (    `<div>${cname}</div>${Grandson(otherName)}`  )}function Grandson(name) {  return (    `<div>${name.gname}</div>`  )}

是不是感覺很熟悉,很像 React。當我執行 Parent() 的時候,所有的子元素和孫子元素都會重新執行,從而數據就有了流向。當我要修改數據的時候只需要。zZn28資訊網——每日最新資訊28at.com

function click() {  data.gname = 'TOM'  parent(data)}

這就是數據驅動 UI。這就是單向數據流。zZn28資訊網——每日最新資訊28at.com

但是實際上,這不是 React 組件,他只是普通的函數,返回了一個字符串而已。因此,要非常注意的是,他也滿足了單向數據流的規則。但是他的寫法也只是函數里執行函數。zZn28資訊網——每日最新資訊28at.com

如果你要改變 data 時,只需要重新執行一下 Parent(data) 。這樣,我們的每一個子組件,都會重新執行。所以我想說的是,構建一個自定義組件確實太簡單了,我們當然也可以在 jQuery 的生態里,基于模板自定義組件。zZn28資訊網——每日最新資訊28at.com

function renderBoldP(value) {   return "<p><b>" + value + "</b></p>";}$.views.tags("boldp", renderBoldP);

React 的語法跟我剛才的寫法非常相似。但是,React 最大的問題就是,嵌套層級太多了,以致于我們在執行頂層組件 Parent() 時,成本偏高。在 jQuery 中,就可以完全不用擔心這個問題,我們可以自由選擇層級,而不必把嵌套層級擴大到整個項目。有可能你只是想要修改一個小小的地方而已。zZn28資訊網——每日最新資訊28at.com

靈活,就是 jQuery 最大的優勢。zZn28資訊網——每日最新資訊28at.com

事實上,當你要研發大型高性能的前端項目時,React 和 jQuery 最終都會殊途同歸。我們也會想辦法在 React 中放棄自頂向下的 diff,然后把改動縮小在可控的范圍里。但是在 React 中要做到這個事情需要非常深厚的功底,而在 jQuery 中卻非常容易。因為我們并不需要去遷就龐雜的 diff 流程,只是簡單的執行一個目標函數而已。zZn28資訊網——每日最新資訊28at.com

六、當你需要雙向綁定時

當你想要在特定的場景里需要雙向綁定時,jQuery 的生態里也有非常多的方案來支撐這個場景。zZn28資訊網——每日最新資訊28at.com

$("#changeObjects").on("click", function() {  $.observable(person).setProperty({    name: "newName",    address: {street: "New Street"},    phones: [{number: "123 123 1234"}, {number: "321 321 4321"}]  });});

所以,當 jQuery 可以自定義組件,可以支持單向數據流,可以支持雙向綁定,這不就齊活了嗎?zZn28資訊網——每日最新資訊28at.com

七、趨勢是什么

不要問未來的趨勢是什么,問就是 jQuery。什么所謂的 Vue3,Solid,svelte,都不是最終形態,他們通通都在走向返祖的道路,未來的趨勢就是 jQuery。所以如果你的團隊里,還在使用 jQuery,正說明你們團隊在領先世界,這是我內心最真實的想法。所以你不需要過于焦慮,你要做的事情只是把 jQuery 用好,用透,去利用 jQuery 的生態構建一套開發效率很高的架構出來,然后回過頭來,你會發現,React/Vue 你只需要一天就能學會。zZn28資訊網——每日最新資訊28at.com

沒有一個團隊,會拒絕得了精通 jQuery 的人。因為你 jQuery 用得好,很大程度上能代表你原生能力相對會強一些,基礎非常扎實。zZn28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-76480-0.html用 React/Vue 不如用 JQuery,你知道嗎?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 在Java應用程序中釋放峰值性能:配置文件引導優化(PGO)概述

下一篇: 終于明白為啥面試老是有人問 SubList 了,原來這玩意會 OOM!

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
狠狠色香婷婷久久亚洲精品| 欧美视频精品一区| 午夜伦欧美伦电影理论片| 亚洲欧美日本日韩| 久久精品国产亚洲5555| 欧美成黄导航| 欧美日在线观看| 国产九区一区在线| 伊人色综合久久天天| 亚洲精品视频在线观看网站 | 亚洲香蕉在线观看| 欧美在线播放一区| 欧美成人自拍| 国产精品v一区二区三区| 国产一区二区三区在线免费观看| 亚洲激情在线| 欧美亚洲三区| 欧美精品v日韩精品v国产精品| 欧美午夜国产| 极品日韩av| 亚洲性线免费观看视频成熟| 久久久美女艺术照精彩视频福利播放| 欧美日本高清| 好吊视频一区二区三区四区| av成人黄色| 麻豆精品视频| 国产精品日韩一区二区三区| 亚洲高清资源综合久久精品| 亚洲字幕一区二区| 欧美国产精品日韩| 国产在线观看一区| 亚洲小视频在线| 女女同性精品视频| 国产日韩欧美综合一区| 99精品视频免费| 久久亚洲精选| 国产精品久久二区二区| 亚洲第一精品影视| 久久成人精品一区二区三区| 国产精品theporn| 亚洲丁香婷深爱综合| 欧美亚洲自偷自偷| 欧美日韩精品在线观看| 亚洲国产精品高清久久久| 性高湖久久久久久久久| 欧美日韩中文精品| 亚洲乱码国产乱码精品精天堂 | 欧美好骚综合网| 国语精品一区| 性久久久久久久| 欧美色中文字幕| 亚洲精品一区中文| 狼人社综合社区| 国产真实乱偷精品视频免| 亚洲一区二区在线视频| 欧美日本亚洲| 亚洲狠狠丁香婷婷综合久久久| 久久精品卡一| 国产性天天综合网| 亚洲欧美视频| 老司机精品久久| 在线观看欧美日韩| 亚洲欧美精品一区| 欧美日韩高清区| 国产精品资源| 亚洲午夜精品一区二区三区他趣| 男人的天堂亚洲在线| 亚洲高清自拍| 欧美日韩视频在线第一区| 一本大道av伊人久久综合| 国产亚洲va综合人人澡精品| 欧美日韩亚洲网| 欧美精品高清视频| 午夜精品一区二区在线观看| 日韩小视频在线观看| 黄色成人在线网址| 精品成人一区二区| 欧美国产先锋| 狠狠色香婷婷久久亚洲精品| 欧美精品v日韩精品v国产精品| 99视频精品| 国产毛片精品国产一区二区三区| 久久久xxx| 久久视频国产精品免费视频在线| 一区二区三区偷拍| 国产一区二区精品久久91| 欧美日韩亚洲在线| 欧美一区二区黄| 香蕉久久夜色精品国产使用方法| 亚洲国产精品热久久| 亚洲免费av电影| 久久精品免费看| 国产精品视频内| 亚洲国产专区校园欧美| 欧美在线一级视频| 国产麻豆精品在线观看| 洋洋av久久久久久久一区| 亚洲精品你懂的| 在线观看欧美精品| 亚洲欧美一区二区视频| 久久天堂精品| 国产日韩一区在线| 在线观看欧美视频| 午夜一区二区三区在线观看| 免费人成网站在线观看欧美高清| 欧美片网站免费| 国产精品成人一区| 国产精品久久久久久久久搜平片| 欧美午夜精品伦理| 最新日韩av| 亚洲在线电影| 老司机67194精品线观看| 午夜精品久久久久久99热软件| 亚洲视屏一区| 亚洲婷婷综合久久一本伊一区| 一二三区精品福利视频| 亚洲精品美女91| 亚洲国产精品激情在线观看| 国产一区二区三区四区在线观看| 久热成人在线视频| 国产欧亚日韩视频| 久久精品视频网| 亚洲欧洲精品一区二区精品久久久 | 国产麻豆91精品| 久久在线免费观看| 一区二区免费看| 国产婷婷一区二区| 玖玖精品视频| 亚洲视频免费| 狠狠狠色丁香婷婷综合激情| 欧美激情久久久久| 欧美亚洲免费电影| 亚洲黄色一区| 国产欧美韩日| 欧美韩国日本一区| 欧美亚洲视频在线观看| 亚洲黄页一区| 国产精品中文在线| 欧美激情国产高清| 性8sex亚洲区入口| 亚洲另类自拍| 国产一区二区三区高清 | 国产欧美日韩亚洲| 欧美激情一二三区| 久久精品国产欧美亚洲人人爽| 亚洲精品一区在线观看香蕉| 国产视频久久网| 欧美日韩高清区| 久久久五月婷婷| 亚洲永久精品大片| 亚洲国产一区在线| 国产欧美日韩视频一区二区三区| 欧美顶级少妇做爰| 久久精品国产亚洲一区二区| 夜夜嗨一区二区| 1769国内精品视频在线播放| 欧美日韩另类字幕中文| 亚洲精华国产欧美| 国产精品试看| 欧美精品免费视频| 久久精品三级| 亚洲欧美日韩系列| 亚洲免费电影在线| 伊人久久大香线| 国产欧美一级| 欧美色欧美亚洲高清在线视频| 免费成人黄色片| 久久成人精品无人区| 亚洲一区三区视频在线观看| 亚洲区欧美区| 在线免费观看一区二区三区| 国产视频观看一区| 国产精品户外野外| 欧美日韩大陆在线| 欧美国产亚洲精品久久久8v| 老司机成人网| 久久久久久久久伊人| 性娇小13――14欧美| 亚洲综合视频在线| 亚洲手机视频| 在线综合欧美| 9人人澡人人爽人人精品| 亚洲国产精品精华液网站| 激情欧美一区二区| 国产小视频国产精品| 国产精品网红福利| 国产精品久久久久一区二区| 欧美日韩一二区| 欧美日韩亚洲天堂| 欧美啪啪成人vr| 欧美日产国产成人免费图片| 欧美电影在线免费观看网站| 男女激情久久| 免费亚洲网站| 欧美成人免费网站| 欧美大片国产精品| 欧美jizz19性欧美| 欧美激情久久久久久| 女人香蕉久久**毛片精品| 麻豆久久精品| 欧美不卡视频| 欧美精品一区三区| 欧美日韩亚洲综合在线| 国产精品vvv|