javascript設計模式與開發實踐全書深度解析(一)之單例模式
這一章作者講了一個例子,就是在用單例模式生成一個dom節點,還要做到只有訪問的時候才建立,後續訪問直接用前面建立的。
那麼實際開發中我們會用到這個模式嗎?
現在我們基本都是用vue,react,angular開發,不太會直接去操作dom。那這個給我們的意義在哪裡呢?
其實吧,如果你寫react,你會發現單例無處不在。
比如你設定一個antd的modal,一般情況下你會通過設定visible去顯示或者隱藏modal。其實這個modal可以說是單例模式,因為它只建立了一次,每次關閉只是改變了css樣式的display。目的是為了優化效能不用每次去建立一個dom。
還有就是你在檔案中引入的變數也是單例。
比如a.js檔案中
export const fruits = ['apple', 'banana', 'pear'];
當你在某個元件裡面引入這個變數。那麼如果你改變它
import {fruits} from './a.js'; fruits.push('grape');
那麼當頁面沒重新整理,所有引用的地方都會被改變,這時很容易引起的bug。
所以程式在引入檔案的時候用了單例模式,一個檔案例項化一次,這種做法無疑是好的,但是也容易引起bug。
在我們平時的開發過程中,可以借鑑這兩種方式去快取變數,節點等。但是也要注意不要隨意改變。