原创 自動化生成html文件之多頁面配置封裝

config.js // entry: 入口js // template: html打包參照模版 module.exports = { pages: { 'index': { src: './src/index.

原创 webpack 之 publicPath

(一)項目開發完上線,path路徑都會換成cdn的域名前綴,這個時候就要使用publicPath了 在output輸出的時候配置:以域名 static.test.cn 爲例:在多頁面的基礎上修改 module.exports = {

原创 處理項目中的資源文件--loader

使用babel-loader轉換ES6代碼: (一)安裝loader需要npm install 來安裝 (二)在webpack.config.js中新加一個module, rules 是要引入的loader, 它是一個數組,test是正則

原创 自動化生成項目中的html頁面

背景:打包好一次js、css都會生成一個不同的帶有版本號的打包文件,把打包好的文件引入html中,每次手動改版本號太麻煩也不現實,如果自動生成html頁面就會方便很多了 實現:借用webpack解決該問題 (html-webpack-pl

原创 iPhonex系列手機底部適配

iPhoneX、iPhone11、iphoneXR 等全屏手機,由於下方有一個小長條,到底吸底按鈕等元素被下方小長條遮住,需向上移動一點,將小長條留出距離, 適配方法如下: js: let deviceHeight = windo

原创 移動端適配代碼

(function flexible(window,document) { var docEl = document.documentElement; function setRemUnit(){

原创 找出數組中每個元素出現的次數

var findLucky = function(arr) { var obj = {} for (var i=0;i<arr.length;i++) { if (obj[arr[i]]) {

原创 啥是骨架屏

(一)什麼是骨架屏 骨架屏可以理解爲是當數據還未加載進來前,頁面的一個空白版本。在頁面完全渲染完成之前,用戶會看到一個樣式簡單,描繪了當前頁面的大致框架的頁面,然後骨架屏中各個佔位部分被實際資源完全替換,這個過程中用戶會覺得內容正在逐漸加

原创 async/await:使用同步的方式去寫異步代碼

(一)async/await 使用了 Generator 和 Promise 兩種技術 1. Generator 生成器函數 生成器函數是一個帶星號函數,而且是可以暫停執行和恢復執行的函數。 (1)在生成器函數內部執行一段代碼,如果遇到

原创 WEB性能分析

(一)什麼是web性能? Web 性能描述了 Web 應用在瀏覽器上的加載和顯示的速度。 (二)web性能查看工具 Chrome 爲我們提供了非常完善的性能檢測工具:Performance 和 Audits,它們能夠準確統計頁面在加載階段

原创 Chrome開發者工具:利用網絡面板做性能分析

(一)瀏覽器開發者工具面板功能 1. 網絡面板 網絡面板由控制器、過濾器、抓圖信息、時間線、詳細列表和下載信息概要這 6 個區域構成(如下圖所示)。 (1)控制器 其中,控制器有 4 個比較重要的功能 1. 紅色圓點的按鈕,表示“開

原创 HTML、CSS和JavaScript,是如何變成頁面的?

按照渲染的時間順序,流水線可分爲如下幾個子階段:構建 DOM 樹、樣式計算、佈局階段、分層、繪製、分塊、光柵化和合成。 在介紹每個階段的過程中,應該重點關注以下三點內容:(輸入、處理、輸出) 1. 開始每個子階段都有其輸入的內容 2. 每

原创 啥是蹦牀函數

(一)蹦牀函數解決的問題 使用es6的蹦牀函數解決遞歸造成的堆棧溢出 (二)舉個例子 <script> function test () { test() } test() </script> 函

原创 同步回調、異步回調

1. js爲什麼是單線程?        其實,JavaScript的單線程,與它的用途是有很大關係,JavaScript作爲瀏覽器的腳本語言,主要用來實現與用戶的交互,利用JavaScript,可以實現對DOM的各種各樣的操作,如果Ja

原创 微信開發者工具、whistle 配合抓包

1. 啓動whistle w2 start -p 8899 2. 配置微信開發者工具 最上邊一欄 ---- 設置 ---- 代理設置 ----  設置本機ip 加 端口號 8899  完成~ 這樣微信開發者的頁面和接口調用就都可以在w