【博客之星評選】2024年度前端學習總結

故事的開端...始于2024年第一篇前端技術博客?

?那故事的終末...也該結束于陪伴了我一整年的前端知識了

踏入 2025 年,滿心激動與自豪,我成功闖進了《2024 年度 CSDN 博客之星總評選》的 TOP300。作為一名剛接觸技術寫作不久的萌新,這次能走到這一步,屬實出乎意料,也備受激勵。借著這次機會,與大家一起分享一下我這一年對于前端領域這一年的深度學習總結,技術工具與平臺的年度使用心得。

目錄

一、引言??

二、框架與庫的演進

2.1 React

2.2 Vue

2.3 Angular

三、新特性與規范的發展

3.1 JavaScript新特性

3.2 CSS新特性

四、性能優化的新策略

4.1 代碼優化

4.2 資源優化

4.3 網絡優化

五、跨端與移動端技術的發展

5.1 跨端開發框架

5.2 移動端性能優化

六、技術工具與平臺年度使用心得?

開發工具

代碼托管與協作平臺

前端測試工具

七、個人心得體會

技術成長

團隊協作

未來展望


一、引言??

在過去一年,前端技術領域持續保持著高速發展的態勢,新技術、新規范、新工具不斷涌現。從構建用戶界面的框架,到優化性能的策略,再到與后端交互的方式,都發生了深刻的變革。這不僅為前端開發者帶來了更多的機遇,也帶來了更大的挑戰。

二、框架與庫的演進

2.1 React

React在過去一年依然是前端開發的熱門框架之一,其核心思想和理念得到了進一步的鞏固和發展。

React 18引入了并發模式,這一特性顯著提升了應用的響應性和用戶體驗。在處理復雜任務時,并發模式能夠將任務切片,使得瀏覽器在執行任務的同時,還能及時響應用戶的交互操作,避免了頁面卡頓。例如,在一個大型數據展示項目中,通過使用React 18的并發模式,在數據加載和處理的過程中,用戶依然可以流暢地進行頁面滾動和元素點擊操作。

同時,React Server Components(RSC)也在不斷發展。RSC允許在服務器端渲染React組件,并且可以直接在服務器上獲取數據,減少了客戶端的數據請求量,從而提升了頁面的加載速度。在一個電商項目中,使用RSC實現了商品詳情頁面的快速加載,用戶無需等待數據從客戶端請求,直接在服務器端獲取并渲染,大大提高了用戶的購物體驗。

import React, { useState, useEffect } from'react';function LongRunningTask() {const [data, setData] = useState(null);useEffect(() => {const fetchData = async () => {// 模擬一個長時間運行的任務,比如網絡請求await new Promise(resolve => setTimeout(resolve, 3000));setData('任務完成,這是數據');};// 使用React的并發模式特性,標記為可中斷任務React.unstable_startTransition(() => {fetchData();});}, []);return (<div>{data? (<p>{data}</p>) : (<p>正在加載數據,請稍候...</p>)}</div>);
}export default LongRunningTask;

2.2 Vue

Vue 3在性能和功能上都有了顯著的提升,成為了許多開發者的首選框架之一。

Vue 3的Composition API為開發者提供了更靈活的代碼組織方式。與傳統的Options API相比,Composition API能夠將相關的邏輯代碼聚合在一起,使得代碼的可維護性和復用性大大提高。在一個企業級項目中,使用Composition API將用戶權限管理、數據請求等相關邏輯封裝成獨立的函數,在不同的組件中可以方便地復用這些邏輯,減少了代碼的重復。

此外,Vue 3的響應式系統也進行了全面升級,采用了Proxy代替Object.defineProperty,使得響應式數據的處理更加高效和靈活。在一個實時數據監控項目中,利用Vue 3的新響應式系統,能夠快速地響應數據的變化,及時更新頁面展示,為用戶提供了更準確的實時數據。

<template><div><button @click="increment">點擊增加計數</button><p>計數: {{ count }}</p></div>
</template><script setup>
import { ref } from 'vue';// 使用Composition API定義響應式數據和方法
const count = ref(0);
const increment = () => {count.value++;
};
</script>

2.3 Angular

Angular在企業級應用開發中一直占據著重要地位,這一年也在不斷發展和完善。

Angular 14引入了一些新的特性,如獨立組件和信號(Signals)。獨立組件允許開發者在不依賴NgModule的情況下創建和使用組件,簡化了組件的開發和使用流程。在一個大型項目中,使用獨立組件減少了模塊之間的依賴關系,提高了組件的可維護性。

// 獨立組件定義
import { Component } from '@angular/core';@Component({selector: 'app-my - component',templateUrl: './my - component.html',styleUrls: ['./my - component.css']
})
export class MyComponent {message = '這是一個獨立組件';
}

信號(Signals)則是Angular 14的一個重要新特性,它提供了一種更高效的狀態管理方式。信號可以自動追蹤數據的變化,并在數據變化時自動更新相關的視圖,減少了手動觸發更新的繁瑣操作。在一個實時協作應用中,使用信號實現了多人實時編輯文檔的功能,用戶在編輯文檔時,其他用戶的頁面能夠實時同步更新。

三、新特性與規范的發展

3.1 JavaScript新特性

ES2022帶來了一些實用的新特性,進一步提升了JavaScript的開發效率和功能。

類字段的公共實例字段和私有實例字段的正式標準化,使得類的封裝性更好。在一個面向對象的項目中,使用私有實例字段可以有效地隱藏類的內部實現細節,保護數據的安全性。

Object.hasOwn方法的引入,提供了一種更可靠的方式來判斷對象是否擁有某個自身屬性,避免了在原型鏈上查找屬性時可能出現的問題。在一個數據處理項目中,使用Object.hasOwn方法可以準確地判斷對象是否包含某個自定義屬性,提高了數據處理的準確性。

class User {// 公共實例字段name = '默認名字';// 私有實例字段#password = '123456';getPassword() {return this.#password;}
}const user = new User();
console.log(user.name);
// console.log(user.#password); // 報錯,無法直接訪問私有字段
console.log(user.getPassword());const obj = { key: 'value' };
console.log(Object.hasOwn(obj, 'key')); // true
console.log(Object.hasOwn(obj, 'nonexistentKey')); // false

3.2 CSS新特性

CSS也在不斷發展,新的特性和規范為前端開發者提供了更多的設計和布局選擇。

container queries(容器查詢)是CSS的一個重要新特性,它允許開發者根據容器的大小來調整元素的樣式,而不是像傳統的媒體查詢那樣根據視口的大小來調整。在一個自適應布局的項目中,使用容器查詢可以讓元素在不同大小的容器中呈現出不同的布局和樣式,提高了頁面的靈活性和適應性。

scroll snapping(滾動捕捉)特性則為用戶提供了更流暢的滾動體驗。通過設置滾動捕捉點,用戶在滾動頁面時,元素會自動對齊到指定的位置,增強了頁面的交互性和可用性。在一個圖片展示項目中,使用滾動捕捉特性可以讓用戶在滾動圖片列表時,圖片能夠自動對齊,方便用戶查看和比較。

.container {width: 50%;/* 設置容器查詢的條件 */container - type: inline - size;container - name: my - container;
}@container my - container (min - width: 600px) {p {font - size: 20px;}
}@container my - container (max - width: 600px) {p {font - size: 16px;}
}

四、性能優化的新策略

4.1 代碼優化

代碼優化是提升前端性能的基礎。在過去一年,出現了一些新的代碼優化策略和工具。

Tree Shaking技術得到了更廣泛的應用和優化。Tree Shaking可以去除未使用的代碼,減少打包后的文件體積。在一個大型JavaScript項目中,通過配置Webpack啟用Tree Shaking,成功將打包后的文件體積減少了30%,大大提高了頁面的加載速度。

同時,ESBuild等新一代的構建工具也逐漸嶄露頭角。ESBuild使用Go語言編寫,具有極快的構建速度,比傳統的Webpack構建速度快數倍。在一個快速迭代的項目中,使用ESBuild作為構建工具,顯著縮短了構建時間,提高了開發效率。

4.2 資源優化

資源優化是提升前端性能的關鍵環節。在這一年,資源優化方面也有了一些新的進展。

圖像優化方面,除了繼續推廣WebP格式圖片外,還出現了一些新的圖像壓縮和優化工具。例如,ImageOptim可以在不損失圖像質量的前提下,大幅壓縮圖像文件的大小。在一個圖片密集型的項目中,使用ImageOptim對圖片進行預處理,有效地減少了圖片資源的加載時間,提升了頁面的加載速度。

字體優化方面,通過使用@font-face規則和字體加載策略,可以更好地控制字體的加載和顯示。例如,使用font-display: swap可以在字體加載過程中,先顯示系統默認字體,字體加載完成后再切換,避免了字體閃爍的問題,提高了用戶體驗。

4.3 網絡優化

網絡優化對于提升前端性能也至關重要。在過去一年,網絡優化方面有了一些新的技術和策略。

HTTP/3協議的逐漸普及,為前端應用帶來了更快的網絡傳輸速度。HTTP/3基于UDP協議,采用了QUIC協議來實現可靠傳輸,減少了連接建立的延遲和丟包重傳的時間。在一個全球化的項目中,使用HTTP/3協議,使得不同地區的用戶都能夠快速地訪問應用,提高了應用的可用性和用戶滿意度。

同時,服務端渲染(SSR)和靜態站點生成(SSG)技術也得到了更廣泛的應用。SSR可以在服務器端生成HTML頁面,然后發送給客戶端,減少了客戶端的渲染時間。SSG則是在構建階段生成靜態HTML頁面,適合內容更新不頻繁的網站。在一個新聞資訊類項目中,使用SSG技術生成靜態頁面,大大提高了頁面的加載速度和搜索引擎的友好性。

五、跨端與移動端技術的發展

5.1 跨端開發框架

跨端開發框架在過去一年得到了進一步的發展和完善,成為了許多開發者實現多平臺應用開發的首選方案。

Flutter是一款由Google開發的跨端開發框架,使用Dart語言進行開發。Flutter采用了自繪引擎,能夠在不同平臺上實現高性能的渲染,提供了接近原生應用的用戶體驗。在一個跨平臺的移動應用項目中,使用Flutter開發,實現了在iOS和Android平臺上的快速部署和運行,并且保持了一致的界面風格和性能表現。

React Native也在不斷發展,通過優化底層架構和性能,提升了應用的運行效率和穩定性。在一個電商移動應用中,使用React Native結合Native模塊,實現了部分功能的原生調用,提高了應用的性能和用戶體驗。

5.2 移動端性能優化

移動端性能優化一直是前端開發的重點和難點。在過去一年,移動端性能優化方面有了一些新的策略和技術。

在移動設備上,由于硬件資源有限,優化內存使用和減少CPU占用尤為重要。通過使用內存分析工具,如Chrome DevTools的Memory面板,可以檢測和優化應用的內存泄漏和內存占用過高的問題。在一個移動游戲項目中,通過使用Memory面板對游戲內存進行分析和優化,成功解決了游戲在長時間運行后出現的卡頓和閃退問題。

同時,優化移動網絡請求也是提升移動端性能的關鍵。通過使用緩存策略、壓縮數據傳輸、優化請求并發等技術,可以減少移動網絡請求的次數和數據量,提高應用的響應速度。在一個移動社交應用中,通過設置合理的緩存策略,將常用的數據緩存到本地,減少了網絡請求的次數,提高了應用的加載速度和用戶體驗。

六、技術工具與平臺年度使用心得?

開發工具

VS Code 憑借其豐富的插件生態和強大的代碼編輯功能,成為了前端開發的首選工具。例如,ESLint 插件可以實時檢查代碼規范,Prettier 插件則能自動格式化代碼,保持代碼風格的一致性。在團隊開發中,這兩個插件的配合使用,大大減少了代碼風格相關的沖突。

Webpack 作為前端構建工具,在項目的打包和優化過程中起著核心作用。通過配置不同的 loader 和 plugin,可以實現對各種文件類型的處理,如將 Sass 轉換為 CSS,壓縮 JavaScript 和 CSS 文件等。在一個大型項目中,通過合理配置 Webpack 的代碼拆分和緩存策略,使得項目的構建速度和運行性能都得到了顯著提升。

代碼托管與協作平臺

GitHub 是全球最大的代碼托管平臺,它不僅提供了安全可靠的代碼存儲服務,還通過 Pull Request 和 Issue 等功能,極大地促進了團隊成員之間的協作和代碼審查。在一個開源項目中,通過 GitHub 的 Pull Request 機制,接收了來自世界各地開發者的貢獻,共同完善了項目的功能。

前端測試工具

Jest 是一款由 Facebook 開發的 JavaScript 測試框架,它具有簡潔的 API 和強大的斷言庫,能夠輕松編寫單元測試和集成測試。在一個 React 組件庫的開發中,使用 Jest 和 React Testing Library 對組件進行了全面的測試,確保了組件在不同場景下的正確性和穩定性。

Cypress 則是一款新興的前端自動化測試工具,它具有直觀的界面和強大的調試功能,能夠方便地進行端到端測試。在一個電商項目中,使用 Cypress 編寫了一系列的用戶行為測試用例,模擬用戶在購物流程中的操作,確保了系統的穩定性和用戶體驗。

七、個人心得體會

技術成長

過去一年,在前端技術領域的不斷學習和實踐中,我深刻體會到技術的快速發展和更新換代。從新的框架特性到性能優化技巧,每一次的學習和應用都讓我對前端開發有了更深入的理解。同時,通過參與開源項目和技術社區的交流,我不僅拓寬了技術視野,還結識了許多優秀的開發者,從他們身上學到了寶貴的經驗和思維方式。

團隊協作

在項目開發過程中,團隊協作的重要性不言而喻。一個高效的團隊需要良好的溝通、明確的分工和相互信任。在與團隊成員合作的過程中,我學會了傾聽他人的意見和建議,積極參與討論和解決問題,共同推動項目的進展。同時,通過代碼審查和技術分享,我也從團隊成員身上學到了不同的編程風格和技巧,提升了自己的技術水平。

未來展望

展望未來,我將繼續關注前端技術的發展趨勢,深入學習新興技術,如 WebAssembly、漸進式 Web 應用(PWA)等。同時,我也希望能夠參與更多具有挑戰性的項目,將所學知識應用到實際開發中,不斷提升自己的技術能力和解決問題的能力。此外,我還計劃在技術社區中更加活躍,分享自己的技術經驗和心得,與更多的開發者共同成長。

總之,過去一年在前端領域的經歷讓我收獲頗豐,也為未來的發展奠定了堅實的基礎。我相信,在不斷學習和實踐的道路上,我將在前端開發領域取得更大的進步。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/66472.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/66472.shtml
英文地址,請注明出處:http://en.pswp.cn/web/66472.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Ubuntu 24.04 LTS 服務器折騰集

目錄 Ubuntu 更改軟件源Ubuntu 系統語言英文改中文windows 遠程鏈接 Ubuntu 圖形界面Windows 通過 openssh 連接 UbuntuUbuntu linux 文件權限Ubuntu 空閑硬盤掛載到 文件管理器的 other locationsUbuntu 開啟 SMB 服務&#xff0c;并通過 windows 訪問Ubuntu安裝Tailscale&am…

《TikTok停服:信息安全警鐘長鳴》

一、TikTok 停服事件回顧 2025 年 1 月 18 日晚&#xff0c;TikTok 通知美國用戶&#xff0c;由于美官方禁令于 19 日起生效&#xff0c;TikTok 軟件將暫時對用戶停止服務。這一消息猶如一顆重磅炸彈&#xff0c;瞬間在全球范圍內掀起軒然大波。美國用戶對此猝不及防&#xff0…

1166 Summit (25)

A summit (峰會) is a meeting of heads of state or government. Arranging the rest areas for the summit is not a simple job. The ideal arrangement of one area is to invite those heads so that everyone is a direct friend of everyone. Now given a set of tenta…

圖論DFS:黑紅樹

我的個人主頁 {\large \mathsf{{\color{Red} 我的個人主頁} } } 我的個人主頁 往 {\color{Red} {\Huge 往} } 往 期 {\color{Green} {\Huge 期} } 期 文 {\color{Blue} {\Huge 文} } 文 章 {\color{Orange} {\Huge 章}} 章 DFS 算法&#xff1a;記憶化搜索DFS 算法&#xf…

C++,設計模式,【目錄篇】

文章目錄 1. 簡介2. 設計模式的分類2.1 創建型模式&#xff08;Creational Patterns&#xff09;&#xff1a;2.2 結構型模式&#xff08;Structural Patterns&#xff09;&#xff1a;2.3 行為型模式&#xff08;Behavioral Patterns&#xff09;&#xff1a; 3. 使用設計模式…

掌握提示詞工程:大模型使用入門指南

掌握提示詞工程&#xff1a;大模型使用入門指南 近年來&#xff0c;大語言模型&#xff08;如 GPT、Claude 等&#xff09;的強大能力令人印象深刻&#xff0c;但要想充分發揮這些模型的潛力&#xff0c;僅僅依靠其預訓練能力還不夠。提示詞工程&#xff08;Prompt Engineerin…

如何使用 useMemo 和 memo 優化 React 應用性能?

使用 useMemo 和 memo 優化 React 應用性能 在構建復雜的 React 應用時&#xff0c;性能優化是確保應用流暢運行的關鍵。React 提供了多種工具來幫助開發者優化組件的渲染和計算邏輯&#xff0c;其中 useMemo 和 memo 是兩個非常有用的 Hook。本文將詳細介紹這兩個工具的使用方…

Agent Laboratory: Using LLM Agents as Research Assistants 論文簡介

加速機器學習研究的智能實驗室——Agent Laboratory 1. 引言 隨著人工智能技術的飛速發展&#xff0c;機器學習領域正以前所未有的速度推進科學發現和技術創新。然而&#xff0c;傳統的科學研究模式往往受到時間、資源和專業知識限制&#xff0c;阻礙了研究者們探索新想法的能…

【網絡協議】【http】【https】ECDHE-TLS1.2

【網絡協議】【http】【https】ECDHE-TLS1.2 ECDHE算法 1.客戶端和服務器端事先確定好使用哪種橢圓曲線&#xff0c;和曲線上的基點G&#xff0c;這兩個參數都是公開的&#xff0c; 雙方各自隨機生成一個隨機數作為私鑰d&#xff0c;并與基點 G相乘得到公鑰Q(QdG)&#xff0c…

規避路由沖突

路由沖突是指在網絡中存在兩個或多個路由器在進行路由選擇時出現矛盾&#xff0c;導致網絡數據包無法正確傳輸&#xff0c;影響網絡的正常運行。為了規避路由沖突&#xff0c;可以采取以下措施&#xff1a; 一、合理規劃IP地址 分配唯一IP&#xff1a;確保每個設備在網絡中都有…

項目實戰--網頁五子棋(游戲大廳)(3)

我們的游戲大廳界面主要需要包含兩個功能&#xff0c;一是顯示用戶信息&#xff0c;二是匹配游戲按鈕 1. 頁面實現 hall.html <!DOCTYPE html> <html lang"ch"> <head><meta charset"UTF-8"><meta name"viewport"…

大模型UI:Gradio全解11——Chatbot:融合大模型的聊天機器人(4)

大模型UI&#xff1a;Gradio全解11——Chatbot&#xff1a;融合大模型的聊天機器人&#xff08;4&#xff09; 前言本篇摘要11. Chatbot&#xff1a;融合大模型的多模態聊天機器人11.4 使用Blocks創建自定義聊天機器人11.4.1 簡單聊天機器人演示11.4.2 立即響應和流式傳輸11.4.…

【線性代數】行列式的概念

d e t ( A ) ∑ i 1 , i 2 , ? , i n ( ? 1 ) σ ( i 1 , ? , i n ) a 1 , i 1 a 2 , i 2 , ? , a n , i n det(A) \sum_{i_1,i_2,\cdots,i_n } (-1)^{\sigma(i_1,\cdots,i_n)} a_{1,i_1}a_{2,i_2},\cdots, a_{n,i_n} det(A)i1?,i2?,?,in?∑?(?1)σ(i1?,?,in?)a1…

關于php語言api接口開發的流程

確定接口需求&#xff1a;首先明確接口的功能和需求&#xff0c;包括輸入參數、輸出結果以及接口的業務邏輯。 設計接口路由&#xff1a;根據接口需求&#xff0c;設計具體的接口路由&#xff0c;即URL路徑&#xff0c;用于訪問接口。 搭建PHP環境&#xff1a;確保你的服務器上…

STM32 FreeRTOS內存管理簡介

在使用 FreeRTOS 創建任務、隊列、信號量等對象時&#xff0c;通常都有動態創建和靜態創建的方式。動態方式提供了更靈活的內存管理&#xff0c;而靜態方式則更注重內存的靜態分配和控制。 如果是1的&#xff0c;那么標準 C 庫 malloc() 和 free() 函數有時可用于此目的&#…

【Linux系統編程】—— 深度解析進程等待與終止:系統高效運行的關鍵

文章目錄 進程創建再次認識fork()函數fork()函數返回值 寫時拷貝fork常規?法以及調用失敗的原因 進程終?進程終止對應的三種情況進程常?退出?法_exit函數exit函數return退出 進程等待進程等待的必要性進程等待的?法 進程創建 再次認識fork()函數 fork函數初識&#xff1…

國產編輯器EverEdit -重復行

1 重復行 1.1 應用場景 在代碼或文本編輯過程中&#xff0c; 經常需要快速復制當前行&#xff0c;比如&#xff0c;給對象的多個屬性進行賦值。傳統的做法是&#xff1a;選中行-> 復制-> 插入新行-> 粘貼&#xff0c;該操作有4個步驟&#xff0c;非常繁瑣。 那有沒…

基于VSCode+CMake+debootstrap搭建Ubuntu交叉編譯開發環境

基于VSCodeCMakedebootstrap搭建Ubuntu交叉編譯開發環境 1 基于debootstrap搭建目標系統環境1.1 安裝必要軟件包1.2 創建sysroot目錄1.3 運行debootstrap1.4 掛載必要的虛擬文件系統1.5 進入目標系統1.6 使用目標系統&#xff08;以安裝zlog為例&#xff09;1.7 清理和退出 2 基…

NiceFish(美人魚)

前端有 3 個版本&#xff1a; 瀏覽器環境移動端環境Electron 環境 服務端有 2 個版本&#xff1a; SpringBoot 版本&#xff08;已實現基于 Apache Shiro 的 RBAC 權限控制&#xff09;SpringCloud 版本 1.主要依賴 名稱版本描述Angular16.2.0Angular 核心庫。PrimeNG16.2…

華為ENSP:STP和鏈路聚合的管理與配置

這里將不再過度闡述STP和鏈路聚合的理論知識&#xff0c;不清楚的同學可以去觀看Cisco文章中的理論知識 理論知識https://blog.csdn.net/2301_76341691/article/details/145166547?fromshareblogdetail&sharetypeblogdetail&sharerId145166547&sharereferPC&…