heart 板


LINE

Vue 和 React 等現代前端框架之所以能取代 jQuery,主要是因為它們在開發模式、效能和 程式碼維護性等方面,提供了更先進的解決方案。以下是一些關鍵原因和範例: **1. 聲明式渲染 vs. 命令式操作:** * **jQuery:** * jQuery 主要以「命令式」的方式操作 DOM。開發者需要明確地指示程式碼如何改變 網頁上的元素。 * 範例:使用 `$('#myElement').text('New Text')` 來手動更新元素內容。 * **Vue/React:** * Vue 和 React 採用「聲明式」的開發模式。開發者只需描述期望的網頁狀態,框架 會自動處理 DOM 更新。 * 範例(Vue):在模板中綁定資料 `{{ message }}`,當 `message` 變更時,網頁會 自動更新。 * 這種方式讓程式碼更簡潔、易於理解和維護。 **2. 組件化開發:** * **jQuery:** * jQuery 主要關注 DOM 操作,缺乏內建的組件化機制。 * 在大型應用中,程式碼容易變得混亂且難以維護。 * **Vue/React:** * Vue 和 React 強調組件化開發,將網頁拆分為獨立、可重複使用的組件。 * 這使得程式碼更具模組化、可測試性更高,並提升開發效率。 * 例如,你可以建立一個按鈕組件,在不同的頁面重複利用。 **3. 虛擬 DOM:** * **jQuery:** * jQuery 直接操作真實 DOM,頻繁的 DOM 操作可能導致效能問題。 * **Vue/React:** * Vue 和 React 使用虛擬 DOM,在記憶體中模擬 DOM 結構。 * 當資料變更時,框架會先在虛擬 DOM 中進行差異比對,然後只更新實際需要變更的 DOM 部分,提升效能。 **4. 資料綁定:** * **jQuery:** * 需要手動的去更新資料以及需要手動的去更新頁面。 * **Vue/React:** * vue以及react都提供雙向資料綁定。 * 也就是資料的變更,會直接體現在頁面上,頁面的變更,也會影響到資料的變化。 Q. 我不太明白上述的渲染與聲明、組件等的說明。能分別舉生活可能的情景或是小故事來解釋 嗎? 好的,讓我們用生活情境或小故事來解釋這些概念: **1. 聲明式渲染 vs. 命令式操作:** * **命令式操作(jQuery 類似):** * 想像你是一位餐廳服務生,客人點了一份「番茄義大利麵」。 * 使用命令式操作,你需要一步一步地指示廚師: * 「拿一個盤子。」 * 「煮義大利麵。」 * 「準備番茄醬。」 * 「將義大利麵放入盤子。」 * 「淋上番茄醬。」 * 「撒上起司。」 * 「端給客人。」 * 每一步都必須明確指示,如果客人改變主意,例如不要起司,你必須重新指示廚師修 改每一個步驟。 * **聲明式渲染(Vue/React 類似):** * 同樣是餐廳服務生,但這次你使用的是聲明式。 * 你只需要告訴廚師:「客人要一份番茄義大利麵。」 * 廚師知道如何製作番茄義大利麵,並自動完成所有步驟。 * 如果客人不要起司,你只需要告訴廚師:「客人要一份番茄義大利麵,不要起司。」 廚師會自動調整,你不需要一步一步指示。 * 聲明式就是我只要說出我要的結果,至於中間的過程框架會自動處理。 **2. 組件化開發:** * **組件化開發(Vue/React):** * 想像你是一位樂高積木玩家。 * 你有很多不同種類的樂高積木,例如輪子、磚塊、窗戶等。 * 你可以將這些積木組合成不同的組件,例如汽車、房子、飛機等。 * 你可以重複使用這些組件,例如在不同的房子中使用相同的窗戶。 * 網頁開發中,組件就是網頁中可重複使用的小單元,例如按鈕、導航欄、表單等。 * 組件化讓你更容易管理和重複使用程式碼,就像樂高積木一樣。 **3. 虛擬 DOM:** * **虛擬 DOM(Vue/React):** * 想像你是一位畫家,你要在一幅畫上修改一些細節。 * 直接在畫布上修改,可能會弄髒或損壞畫作。 * 虛擬 DOM 就像是你在畫布上覆蓋一張透明的膠片,在膠片上進行修改。 * 修改完成後,你將膠片上的修改應用到原始畫布上,只修改需要變更的部分。 * 虛擬 DOM 讓網頁更新更有效率,減少對實際網頁內容的直接修改,從而提高效能。 希望這些生活化的例子能幫助你更好地理解這些概念。 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.138.162.107 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/heart/M.1743192626.A.972.html
1F:→ iLeyaSin365: https://www.musictheory.net/exercises 03/30 03:30







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP