国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端面試練習(xí)24.3.5

這篇具有很好參考價(jià)值的文章主要介紹了前端面試練習(xí)24.3.5。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

webpack相關(guān)

項(xiàng)目使用webpack流程

  1. 進(jìn)入一個(gè)初始化好的vue項(xiàng)目
  2. 下載安裝webpack相關(guān)依賴包/插件
    1. npm install --save-dev webpack webpack-cli webpack-dev-server
    2. 安裝一些相關(guān)的loader,比如vue-loader,babel-loader,css-loader等
  3. 創(chuàng)建webpack.config.js文件,進(jìn)行相關(guān)配置
  4. 文件內(nèi)容如下
const path = require('path');
const VueLoaderPlugin = require('vue-loader/lib/plugin');

module.exports = {
  mode: 'development', // 設(shè)置為開發(fā)模式
  entry: './src/main.js', // 入口文件
  output: {
    path: path.resolve(__dirname, 'dist'), // 輸出目錄
    filename: 'bundle.js', // 輸出文件名
    publicPath: '/dist/' // 公共路徑
  },
  module: {
    rules: [
      {
        test: /\.vue$/, // 處理.vue文件
        loader: 'vue-loader'
      },
      {
        test: /\.js$/, // 處理.js文件
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader'
        }
      },
      {
        test: /\.css$/, // 處理.css文件
        use: ['vue-style-loader', 'css-loader']
      },
      {
        test: /\.(png|jpe?g|gif)$/i, // 處理圖片文件
        use: [
          {
            loader: 'file-loader',
            options: {
              outputPath: 'images' // 輸出目錄
            }
          }
        ]
      }
    ]
  },
  resolve: {
    extensions: ['.js', '.vue', '.json'], // 解析文件擴(kuò)展名
    alias: {
      'vue$': 'vue/dist/vue.esm.js', // 指定Vue版本
      '@': path.resolve(__dirname, 'src') // 設(shè)置@符號(hào)指向src目錄
    }
  },
  plugins: [
    new VueLoaderPlugin() // Vue Loader插件
  ],
  devServer: {
    contentBase: path.resolve(__dirname, 'public'), // 設(shè)置服務(wù)器根目錄
    publicPath: '/dist/', // 公共路徑
    port: 8080, // 端口號(hào)
    open: true // 自動(dòng)打開瀏覽器
  }
};

1.webpack的構(gòu)建流程

  1. 初始化參數(shù):從配置?件和 Shell 語(yǔ)句中讀取與合并參數(shù),得出最終的參數(shù);
  2. 開始編譯:?上?步得到的參數(shù)初始化 Compiler 對(duì)象,加載所有配置的插件,執(zhí)?對(duì)象的 run ?法開始執(zhí)?編譯;
  3. 確定??:根據(jù)配置中的 entry 找出所有的???件;
  4. 編譯模塊:從???件出發(fā),調(diào)?所有配置的 Loader 對(duì)模塊進(jìn)?翻譯,再找出該模塊依賴的模塊,再遞歸本步驟直到所有??依賴的?件都經(jīng)過(guò)了本步驟的處理;
  5. 完成模塊編譯:在經(jīng)過(guò)第4步使? Loader 翻譯完所有模塊后,得到了每個(gè)模塊被翻譯后的最終內(nèi)容以及它們之間的依賴關(guān)系;
  6. 輸出資源:根據(jù)??和模塊之間的依賴關(guān)系,組裝成?個(gè)個(gè)包含多個(gè)模塊的 Chunk,再把每個(gè) Chunk 轉(zhuǎn)換成?個(gè)單獨(dú)的?件加?到輸出列表,這步是可以修改輸出內(nèi)容的最后機(jī)會(huì);
  7. 輸出完成:在確定好輸出內(nèi)容后,根據(jù)配置確定輸出的路徑和?件名,把?件內(nèi)容寫?到?件系統(tǒng)。

2.webpack的優(yōu)勢(shì)

webpack適?于?型復(fù)雜的前端站點(diǎn)構(gòu)建:

webpack有強(qiáng)?的loader和插件?態(tài),打包后的?件實(shí)際上就是?個(gè)?即執(zhí)?函數(shù),這個(gè)?即執(zhí)?函數(shù)接收?個(gè)參數(shù),這個(gè)參數(shù)是模塊對(duì)象,鍵為各個(gè)模塊的路徑,值為模塊內(nèi)容。?即執(zhí)?函數(shù)內(nèi)部則處理模塊之間的引?,執(zhí)?模塊等,這種情況更適合?件依賴復(fù)雜的應(yīng)?開發(fā)。

3.webpack的熱更新是怎么做的

Webpack的熱更新(Hot Module Replacement,HMR)是一項(xiàng)功能,它允許在不刷新整個(gè)頁(yè)面的情況下替換、添加或刪除模塊。這使得開發(fā)者可以在保持應(yīng)用程序狀態(tài)的同時(shí)進(jìn)行快速的開發(fā)和調(diào)試。

  1. 運(yùn)行時(shí)更新模塊

    • 當(dāng)Webpack監(jiān)聽到源代碼發(fā)生變化時(shí),它會(huì)在后臺(tái)重新編譯修改過(guò)的模塊,但并不會(huì)重新加載整個(gè)頁(yè)面。
    • 更新的模塊以及其依賴項(xiàng)會(huì)被標(biāo)記為"熱"(hot)。
  2. 模塊熱替換(Hot Module Replacement)

    • 當(dāng)新的模塊編譯完成后,Webpack會(huì)使用WebSocket或者XHR等方式通知在運(yùn)行時(shí)的應(yīng)用程序。
    • 應(yīng)用程序會(huì)接收到這些更新,并通過(guò)一種叫做"熱更新中間件"的工具來(lái)處理這些更新。
  3. 應(yīng)用程序響應(yīng)更新

    • 應(yīng)用程序會(huì)根據(jù)更新的類型(替換、添加或刪除模塊)來(lái)執(zhí)行相應(yīng)的操作。
    • 替換模塊時(shí),應(yīng)用程序會(huì)盡可能保留當(dāng)前模塊的狀態(tài),例如組件的狀態(tài)或者頁(yè)面的滾動(dòng)位置。
    • 如果一個(gè)模塊無(wú)法熱更新,那么整個(gè)頁(yè)面就會(huì)被重新加載。
  4. 完成熱更新

    • 一旦應(yīng)用程序完成更新,它會(huì)發(fā)送一個(gè)消息給Webpack,告訴Webpack熱更新已經(jīng)完成。
    • 在完成更新之后,Webpack會(huì)重新編譯其他模塊,以確保它們與最新的代碼保持同步。

4.webpack的性能優(yōu)化是怎么做的

?webpack優(yōu)化前端性能是指優(yōu)化webpack的輸出結(jié)果,讓打包的最終結(jié)果在瀏覽器運(yùn)?快速?效。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-837943.html

  • 壓縮代碼:刪除多余的代碼、注釋、簡(jiǎn)化代碼的寫法等等?式??梢岳?webpack的 UglifyJsPlugin 和 ParallelUglifyPlugin 來(lái)壓縮JS?件, 利? cssnano (css-loader?minimize)來(lái)壓縮css
  • 利?CDN加速: 在構(gòu)建過(guò)程中,將引?的靜態(tài)資源路徑修改為CDN上對(duì)應(yīng)的路徑。可以利?webpack對(duì)于 output 參數(shù)和各loader的 publicPath 參數(shù)來(lái)修改資源路徑
  • Tree Shaking: 將代碼中永遠(yuǎn)不會(huì)?到的?段刪除掉??梢酝ㄟ^(guò)在啟動(dòng)webpack時(shí)追加參數(shù) --optimize-minimize 來(lái)實(shí)現(xiàn)
  • Code Splitting: 將代碼按路由維度或者組件分塊(chunk),這樣做到按需加載,同時(shí)可以充分利?瀏覽器緩存
  • 提取公共第三?庫(kù): SplitChunksPlugin插件來(lái)進(jìn)?公共模塊抽取,利?瀏覽器緩存可以?期緩存這些?需頻繁變動(dòng)的公共代碼

5.webpack treeShaking機(jī)制的原理

  • treeShaking也叫搖樹優(yōu)化,是一種通過(guò)移除多于代碼,來(lái)優(yōu)化打包體積的,生產(chǎn)環(huán)境默認(rèn)開啟。
  • 可以在代碼不運(yùn)行的狀態(tài)下,分析出不需要的代碼;
  • 利用es6模塊的規(guī)范
    • ES6 Module引入進(jìn)行靜態(tài)分析,故而編譯的時(shí)候正確判斷到底加載了那些模塊
    • 靜態(tài)分析程序流,判斷那些模塊和變量未被使用或者引用,進(jìn)而刪除對(duì)應(yīng)代碼

6.一些常見Loader

  • file-loader:把?件輸出到?個(gè)?件夾中,在代碼中通過(guò)相對(duì) URL 去引?輸出的?件
  • url-loader:和 file-loader 類似,但是能在?件很?的情況下以 base64 的?式把?件內(nèi)容注?到代碼中去
  • source-map-loader:加載額外的 Source Map ?件,以?便斷點(diǎn)調(diào)試
  • image-loader:加載并且壓縮圖??件
  • babel-loader:把 ES6 轉(zhuǎn)換成 ES5
  • css-loader:加載 CSS,?持模塊化、壓縮、?件導(dǎo)?等特性
  • style-loader:把 CSS 代碼注?到 JavaScript 中,通過(guò) DOM 操作去加載 CSS。
  • eslint-loader:通過(guò) ESLint 檢查 JavaScript 代碼

到了這里,關(guān)于前端面試練習(xí)24.3.5的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • [office] excel成績(jī)表格數(shù)據(jù)排名次的教程 #職場(chǎng)發(fā)展#知識(shí)分享#媒體

    excel成績(jī)表格數(shù)據(jù)排名次的教程 Excel 中經(jīng)常需要使用到 排名 次的技巧,成績(jī)表格數(shù)據(jù)具體該如何排名呢?接下來(lái)是小編為大家?guī)?lái)的excel成績(jī)表格數(shù)據(jù)排名次的教程,供大家參考。 步驟1:不管在學(xué)校還是各個(gè)統(tǒng)計(jì)領(lǐng)域,排名應(yīng)用隨處可見,如果排序會(huì)打亂原有次序,那么好多

    2024年02月21日
    瀏覽(16)
  • 【職業(yè)人生】如何有效的在職場(chǎng)當(dāng)中避免工作失誤和提高個(gè)人發(fā)展

    【職業(yè)人生】如何有效的在職場(chǎng)當(dāng)中避免工作失誤和提高個(gè)人發(fā)展

    ? ? ?《左傳·宣公二年》:“人誰(shuí)無(wú)過(guò),過(guò)而能改,善莫大焉?!惫磐駚?lái),多少人犯過(guò)錯(cuò)誤。強(qiáng)大如“智絕”的諸葛孔明,也有街亭之失。職場(chǎng)人更是難免會(huì)在工作中出現(xiàn)失誤。 ? ? 在職場(chǎng)生涯當(dāng)中避免不了在工作當(dāng)中帶來(lái)的失誤,在這過(guò)程當(dāng)中,我們應(yīng)當(dāng)要學(xué)會(huì)怎么去

    2024年02月08日
    瀏覽(16)
  • 突破職場(chǎng)競(jìng)爭(zhēng),引領(lǐng)未來(lái)發(fā)展:考取《研發(fā)效能(DevOps)工程師職業(yè)技術(shù)認(rèn)證》

    突破職場(chǎng)競(jìng)爭(zhēng),引領(lǐng)未來(lái)發(fā)展:考取《研發(fā)效能(DevOps)工程師職業(yè)技術(shù)認(rèn)證》

    就業(yè)形勢(shì)堪憂,什么最有保障?考個(gè)“國(guó)家級(jí)”證書傍身吧! 工信部教考中心作為中國(guó)領(lǐng)先的行業(yè)技能認(rèn)證機(jī)構(gòu),其頒發(fā)的認(rèn)證證書不僅代表了個(gè)人在信息技術(shù)領(lǐng)域的專業(yè)能力,更可以錄入工業(yè)和信息化技術(shù)技能人才數(shù)據(jù)庫(kù),這是一個(gè)重要的信息資源平臺(tái),它可以幫助企業(yè)和

    2024年02月05日
    瀏覽(17)
  • [office] Excel中函數(shù)進(jìn)行計(jì)算兩個(gè)日期參數(shù)差值的方法 #職場(chǎng)發(fā)展#學(xué)習(xí)方法#媒體

    Excel中函數(shù)進(jìn)行計(jì)算兩個(gè)日期參數(shù)差值的方法 在excel使用中,如果想計(jì)算兩個(gè)日期參數(shù)的差值,該用什么函數(shù)和如何使用呢?今天,小編就教大家在Excel中函數(shù)進(jìn)行計(jì)算兩個(gè)日期參數(shù)差值的方法。 Excel中函數(shù)進(jìn)行計(jì)算兩個(gè)日期參數(shù)差值的步驟 在excel中計(jì)算兩個(gè)日期參數(shù)的差值,

    2024年02月20日
    瀏覽(21)
  • 專項(xiàng)練習(xí)24

    專項(xiàng)練習(xí)24

    目錄 一、選擇題 ? ??1、JavaScript 中的數(shù)字在計(jì)算機(jī)內(nèi)存中占多少個(gè)Byte? ? ??2、請(qǐng)問(wèn)以下JS代碼會(huì)輸出什么 二、編程題 ? ??1、以數(shù)字的形式返回?cái)?shù)字參數(shù)向下取整的結(jié)果 1、JavaScript 中的數(shù)字在計(jì)算機(jī)內(nèi)存中占多少個(gè)Byte? A、2 Byte B、4Byte C、8Byte D、16Byte 正確答案:C???

    2024年02月13日
    瀏覽(20)
  • Python基礎(chǔ)合集 練習(xí)24 (程序調(diào)試)

    Python基礎(chǔ)合集 練習(xí)24 (程序調(diào)試)

    def num_ca(): book = int(input(\\\'請(qǐng)輸入圖書數(shù)量: \\\')) student = int(input(\\\'請(qǐng)輸入學(xué)生數(shù)量: \\\')) assert book = student, ‘圖書數(shù)量太少不能均分?!?if book 0 or student 0: print(‘不能輸入小于0的數(shù),請(qǐng)輸入大于0的數(shù)’) result = book // student remainder_book = book - result * student if remainder_book = 0: print(book, ‘本

    2024年02月03日
    瀏覽(16)
  • 程序員在職場(chǎng)中如何讓自己的技能快速提高,WEB前端開發(fā)工程師如何讓自己快速成為團(tuán)隊(duì)的核心開發(fā)人員?

    今天聊一聊 就是我們?cè)诠ぷ髦芯蛯?shí)際的 工資里面 寫代碼的過(guò)程中怎么提高自己的 一些技能 以及我們?cè)趺礃涌焖俪蔀?就是一個(gè)團(tuán)隊(duì)的核心開發(fā)人 包括我以前 其實(shí)我也是一個(gè)小迷弟 后來(lái)就是慢慢慢慢 包括經(jīng)歷一些項(xiàng)目什么東西 其實(shí)現(xiàn)在已經(jīng)慢慢成為核心開發(fā)人員 就是分享

    2023年04月16日
    瀏覽(26)
  • java面試題(24)

    java面試題(24)

    1、對(duì)稱性: 如果 x.equals(y) 返回是“true”,那么 y.equals(x) 也應(yīng)該返回是 “true”。 2、自反性: x.equals(x) 必須返回是“true”。 3、傳遞性: 如果 x.equalsl(y) 返回是“true”,而且 y.equals(z) 返回是“true”,那么 z.equals(x) 也應(yīng)該返回是“true”。 4、一致性: 如

    2024年02月13日
    瀏覽(15)
  • 力扣[24、19、面試題02.07、142]

    力扣[24、19、面試題02.07、142]

    遞歸:自己的 兩兩交換兩個(gè)節(jié)點(diǎn),也就是說(shuō)是成對(duì)的交換!每次交換兩個(gè),下一次交換的時(shí)候,就要從第三個(gè)開始。 然后如上圖可以看出來(lái):我們可以將鏈表分為三個(gè)部分,已經(jīng)交換的部分,和接下來(lái)準(zhǔn)備交換的兩個(gè)節(jié)點(diǎn)! 那么不難想到遞歸,遞歸處理兩個(gè)交換的節(jié)點(diǎn),每

    2024年02月15日
    瀏覽(18)
  • 【LeetCode: 面試題 17.24. 最大子矩陣 | 動(dòng)態(tài)規(guī)劃 】

    【LeetCode: 面試題 17.24. 最大子矩陣 | 動(dòng)態(tài)規(guī)劃 】

    ?? 算法題 ?? ?? 算法刷題專欄 | 面試必備算法 | 面試高頻算法 ?? ?? 越難的東西,越要努力堅(jiān)持,因?yàn)樗哂泻芨叩膬r(jià)值,算法就是這樣? ?? 作者簡(jiǎn)介:碩風(fēng)和煒,CSDN-Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者??,保研|國(guó)家獎(jiǎng)學(xué)金|高中學(xué)習(xí)JAVA|大學(xué)完善JAVA開發(fā)技術(shù)棧|面試刷題|面經(jīng)八股文

    2024年02月06日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包