Mar 09 2026
林恆 -
關於地圖渲染加20w數據展示和地圖動畫怎麼做
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
項目背景
公司需要將全年設備安裝量通過旗幟的形式展示在全國地圖上,實現數據可視化大屏。主要技術挑戰:
數據量大:全年設備安裝數據約20萬條
實時更新:通過WebSocket實時接收數據
動畫效果:需要展示數據逐條添加的動態效果
性能要求:需要保持60fps的流暢動畫
一、初始實現與
前端
Mar 07 2026
林恆 -
Vue 表單避坑:為什麼 v-model 綁定對象屬性會偷偷修改父組件數據?
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
場景引入
在 Vue 項目裏,表單組件幾乎無處不在。為了提高複用性,我們常常會把一堆輸入框封裝成一個“大表單組件”,然後通過v-model直接綁定一個對象給外部組件:
!-- App.vue --
script setup
import { ref } from 'vue'
import MyForm from './My
前端
Mar 06 2026
林恆 -
uni-app使用瓦片實現離線地圖的兩種方案
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
最近接到一個安卓App的活兒,雖然功能上不算複雜,但因為原本沒怎麼做過安卓端,所以也是"摸着石頭過河"。簡單寫一下踩過的坑和淌的水吧~
uni-app實現離線地圖主要用 leafletjs 實現,但是因為在安卓端運行,存在渲染問題,所以還要用上 renderjs。
實現方案一:web-view
因為uni-app
前端
Mar 05 2026
林恆 -
探索JavaScript的秘密令牌:獨一無二的`Symbol`數據類型
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
引言
在JavaScript的廣闊世界中,數據類型構成了其最基礎的語法元素。隨着ES6的發佈,這個大家庭迎來了兩位新成員:BigInt和Symbol。如果説BigInt是為了解決大數運算的精度問題,那麼Symbol的誕生,則像是一把為對象屬性開啓“隱私空間”和“唯一命名”的神奇鑰匙。本文將帶你深入理解這個“獨一無二”的簡
前端
Mar 04 2026
林恆 -
Vue 3 組件通信的 4 種正確姿勢
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
上個月,我們重構一個老項目,發現一個“祖傳組件”:
父組件傳 props 給子組件
子組件再傳給孫子
孫子改了個狀態,通過 $emit 一層層往上拋
中間任意一層改名,整條鏈就斷了……
同事苦笑:“這哪是組件通信,這是傳話遊戲。”
其實,Vue 3 早就提供了更優雅、更健壯的通信方
前端
Feb 28 2026
林恆 -
display: contents 詳解
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
display: contents是一個相對較新的 CSS 屬性值,它會讓元素自身不生成任何盒子,但它的子元素和偽元素仍然正常生成。簡單説:元素本身從渲染樹中消失,但它的孩子還在。
基本概念
工作原理
div class="parent"
div class="child"內容/div
/div
/* 正常情況下
前端
Feb 27 2026
林恆 -
一文讀懂:CommonJS 和 ES Module 的本質區別
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
面試官:你能説説 CommonJS 和 ES Module 的區別嗎?
我:……(腦子裏只剩下 require 和 import)
説實話,這個問題你一定見過,而且99% 的前端都背過標準答案。
但真要往深了問一句:
為什麼 ESM 可以 Tree Shaking
前端
Feb 25 2026
林恆 -
數組轉樹與樹轉數組
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
扁平數組轉樹形結構 (Array To Tree)
核心痛點
處理“數組轉樹”最直觀的思路是使用遞歸配合雙重循環:遍歷數組中的每一項,再次遍歷數組尋找其子節點。
這種做法的時間複雜度為O(n2)O(n2)當數據量nn較小時(如幾十條菜單),性能損耗尚可忽略。但當數據量達到數千條(如組織架構、行政區劃)時,計算次數呈指數級增長,會導致瀏
前端
Feb 24 2026
林恆 -
HTML5 自定義屬性 data-*:別再把數據塞進 class 裏了!
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
前言:由於“無處安放”而引發的混亂
在 HTML5 普及之前,前端開發者為了在 DOM 元素上綁定一些數據(比如用户 ID、商品價格、狀態碼),可謂是八仙過海,各顯神通:
隱藏域流派:到處塞input type="hidden" value="123",導致 HTML 結構像個堆滿雜物的倉庫。
Clas
前端
Feb 14 2026
林恆 -
為什麼 SVG 能在現代前端中勝出?
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
如果你關注前端圖標的發展,會發現一個現象:
過去前端圖標主要有三種方案:
PNG 小圖(配合雪碧圖)
Iconfont
SVG
到了今天,大部分中大型項目都把圖標系統全面遷移到 SVG。
無論 React/Vue 項目、
前端
Feb 12 2026
林恆 -
普通Fetch和Fetch 流式的區別?
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
你想弄清楚 Fetch 流式的核心定義、工作原理和實際價值,簡單來説,Fetch 流式是 Fetch API 提供的「邊接收、邊處理」數據的能力,它讓前端不再需要等待服務端返回完整的響應數據,而是能逐塊讀取、處理數據,是前端處理大文件、實時數據的核心能力之一。
一、Fetch 流式的核心定義
Fetch 流式(
前端
Feb 11 2026
林恆 -
高德地圖-物流路線
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
有些時候我們的項目只使用原生一些內容是無法實現一些功能的,所以今天我帶來了一個大家都熟悉的,也是生活中常見的一個功能,也就是大家在網購的時候,下單成功後就可以看到自己的訂單,當然也可以查看物流信息,那麼物流信息中有一個部分就是地圖部分,這部分可以讓用户看到自己購買的商品到了哪裏。那這個功能我們使用原生大概率是無法完成的,這就
前端
Feb 10 2026
林恆 -
基於PDF.js的安全PDF預覽組件實現:從虛擬滾動到水印渲染
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
基於PDF.js的安全PDF預覽組件實現:從虛擬滾動到水印渲染
本文將詳細介紹如何基於Mozilla PDF.js實現一個功能完善、安全可靠的PDF預覽組件,重點講解虛擬滾動、雙模式渲染、水印實現等核心技術。
前言
在Web應用中實現PDF預覽功能是常見需求,尤其是在線教育、文檔管理等場景。然而,簡
前端
Feb 09 2026
林恆 -
書架效果的實現
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
1. 對齊目標
前端想實現一個類似的書架放置書籍的效果,目標如下:
2. 思路梳理
我們使用的技術棧:vue
實現這樣的一個效果,我們需要知道以下信息:
每行可以放置多少書本?
放下所有的書本需要多少行?
需要什麼樣的數據結構?
我們現在一個個來思考,既然我們選擇了vue來實現,秉
前端
Feb 08 2026
林恆 -
老闆:能不能別手動複製路由了?我:寫個腳本自動掃描
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
起因
週五快下班,老闆過來看權限配置頁面。
"這個每次都要手動輸路徑?"
"對,現在是這樣。"我打開給他看:
角色:運營專員
路由路徑:[手動輸入] /user/list
組件路徑:[手動輸入] @/views/user/List.vue
"上次運營配錯了,/user/list 寫成 /user/lists,頁面打不開
前端
Feb 07 2026
林恆 -
THREE.js 攝像機分享
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
前置代碼
!DOCTYPE html
html lang="en"
head
meta charset="UTF-8"
meta name="viewport" content="width=device-width, initial-scale=1.0"
titleDocument/title
style
前端
Feb 06 2026
林恆 -
面試官:如何解決按鈕重複點擊?這個問題掛了80%的人!
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
前言
還記得上週我們團隊在招聘前端工程師,一個看起來經驗豐富的候選人坐在我對面。
"你們項目中是如何處理按鈕重複點擊的問題的?"我拋出了這個看似簡單的問題。
"這個簡單,使用防抖就可以了。"他很快回答。
然而,當我繼續追問細節時,他卻陷入了沉思...
實際上,這個問題看似簡單,但是要真正的解決好,需要考慮
前端
Feb 05 2026
林恆 -
這 5 個冷門的 HTML 標籤,能讓你少寫 100 行 JS
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
大家好!😁。
Code Review 的時候,我最怕看到什麼?
不是複雜的算法,也不是什麼正則。而是明明一個 HTML 標籤就能搞定的事,有人非要寫幾百行 JS + CSS 去重新發明輪子 。
前幾天,我看到一個新同學為了寫一個摺疊面板(Accordion),引入了一個重型的第三方庫,還寫了一堆 useStat
前端
Feb 04 2026
林恆 -
CSS 有什麼奇技淫巧?
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
aspect-ratio
寬高比
style
div {
width: 190px; /* 注意,這個數字要能容納完內容才有效 */
aspect-ratio: 16 / 9;
background: tomato;
}
/style
前端
Feb 03 2026
林恆 -
Vue 中的 deep、v-deep 和 >>> 有什麼區別?什麼時候該用?
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
“你用 Element Plus 寫了個按鈕,想改下 hover 顏色,結果死活不生效!最後查了半天,發現得加個 :deep() 才行”
其實,這是 Vue 中一個非常常見的坑:樣式作用域衝突。那為什麼用 UI 庫時,加上 :deep()、::v-deep 或 後,樣式就能生效呢?
它們是什麼?有什麼區別?什麼時候該
前端
Feb 02 2026
林恆 -
拆解一個由 setTimeout 引發的“頁面假死”懸案
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
引言
靈魂拷問
你是不是也寫過這樣的代碼?
“這個動畫有點卡,加個 setTimeout 延時一下?” “這個狀態更新順序不對,給它個 100ms 緩衝?” “不知道什麼時候滾動結束?先延遲個 300ms 再説!”
在前端開發中,setTimeout 就像是一劑強效止痛藥。它能快速掩蓋邏輯上的時序衝突,讓代碼
前端
Feb 01 2026
林恆 -
為什麼有些人邊框不用border屬性
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
1) border 會改變佈局(佔據空間)
border會參與盒模型,增加元素尺寸。
例如,一個寬度 200px 的元素加上border: 1px solid #000,實際寬度會變成:
200 + 1px(left) + 1px(right) = 202px
如果不想影響佈局,就很麻煩。
使用 box-shado
前端
Jan 31 2026
林恆 -
手把手教你實現前端郵件預覽功能
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
你是否曾經想過,在瀏覽器中直接點擊一個郵件附件,就能預覽完整的郵件內容——包括髮件人、收件人、抄送、正文甚至內嵌圖片?
今天,我們要揭秘一個基於 Vue 3 和 Vant UI 的郵件預覽上傳組件,它不僅能上傳.eml格式的郵件文件,還能在彈窗中完整渲染郵件內容,甚至支持附件圖片的內聯展示!
前端
Jan 30 2026
林恆 -
那個寫 width: 33.33% 的前端,終於被 flex: 1 拯救了
🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
告別百分比計算:從文檔流到 Flex 彈性佈局的進化之路
在 CSS 的世界裏,佈局方式的演進就像是一場對“控制權”的爭奪戰。從最初順其自然的文檔流,到精打細算的inline-block,再到如今遊刃有餘的 Flexbox,我們的代碼變得越來越優雅。
一、 隨波逐流:HTML 文檔流
一切佈局的起點
前端