亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

前端路由&webpack基礎(chǔ)配置詳解

 更新時間:2019年06月10日 14:45:32   作者:Tx丶  
這篇文章主要介紹了前端路由&webpack基礎(chǔ)配置詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

1. SPA

SPA是單頁面應(yīng)用程序(single page application),通俗來講就是在一個頁面開發(fā)一個完整網(wǎng)站的功能

優(yōu)點:

  • 不需要跳轉(zhuǎn)頁面,局部更新頁面內(nèi)容
  • 前端組件化

缺點:

  • 首屏加載慢(第一次訪問慢,按需加載)
  • 開發(fā)復(fù)雜(所有的功能都在一個頁面完成,可使用webpack模塊化開發(fā))
  • 不利于SEO搜索引擎優(yōu)化(使用服務(wù)端渲染)

2. 前端路由:

  • 根據(jù)不用的URL標(biāo)識符渲染不同的組件(不同的網(wǎng)頁內(nèi)容)
  • 路由實現(xiàn)原理:
    • hash哈希(錨點) 通過hashchange監(jiān)聽URL標(biāo)識符改變,顯示不同的內(nèi)容
<ul>
  <li><a href="#login" rel="external nofollow" >魯班</a></li>
  <li><a href="#home" rel="external nofollow" >提莫</a></li>
  <li><a href="#list" rel="external nofollow" >劍姬</a></li>
</ul>
<div id="app"></div>
<script>
// 監(jiān)聽hash值的不用,讓頁面顯示不同的內(nèi)容
window.onhashchange = function() {
  let app = document.getElementById('app');
  // 獲取hash值
  let hash = location.hash.substr(1);
  // 根據(jù)標(biāo)識展現(xiàn)不同的內(nèi)容 局部更新
  switch(hash) {
    case 'login':
      app.innerHTML = '托馬斯回旋...';  
      break;
    case 'home':
      app.innerHTML = '正在路上...';
      break;
    case 'list':
      app.innerHTML = '華爾茲...';
      break;
    }
  }
</script>

3. 前端模塊化

  • CommonJS
    • 模塊導(dǎo)出
      • module.exports
      • exports
    • 模塊導(dǎo)入
      • require()
  • ES6 Module
    • 模塊導(dǎo)出
      • export
    • 模塊導(dǎo)入
      • import

4. webpack基礎(chǔ)配置

初始化項目

npm init -y

安裝依賴包

npm install webpack -D

npm install webpack-cli -D

通過webpack命令打包文件: 模塊化轉(zhuǎn)換,代碼壓縮合并

webpack.config.js

const path = require('path');
// 下包并導(dǎo)入插件 npm i html-webpack-plugin -D
const HtmlWebpackPlugin = require('html-webpack-plugin');
// npm i clean-webpack-plugin -D 清除目錄中的內(nèi)容
const { CleanWebpackPlugin } = require('clean-webpack-plugin');

module.exports = {
// 配置打包選項 development開發(fā)環(huán)境
mode: 'development', // production 生產(chǎn)環(huán)境
// 指定入口文件:要打包的文件
entry: './src/js/index.js',
// 指定輸出文件:打包之后的文件
output: {
  path: path.resolve(__dirname, 'dist'),
  filename: 'main.min.js'
},
// 配置資源的加載器 loader
module: {
  rules: [
  // 配置js的加載器(把ES6轉(zhuǎn)化為ES3/5代碼)
  {
    test: /\.jsx?$/,
    loader: 'babel-loader',
    //打包除這個文件之外的文件
    exclude: path.join(__dirname, './node_modules'),
    //打包包括的文件
    include: path.join(__dirname, './src')
  },
  // 配置css的加載器
  {
    // 匹配.css結(jié)尾的文件
    test: /\.css$/,
    // 配置css文件的加載器,處理順序:從右向左
    use: ['style-loader', 'css-loader']
  },
  // 配置less的加載器
  {
    test: /\.less$/,
    use: ['style-loader', 'css-loader', 'less-loader']
  }
  ]
},
// 配置插件
plugins: [
  new CleanWebpackPlugin(),
  // 動態(tài)生成html
  new HtmlWebpackPlugin({
  title: '測試標(biāo)題',
  template: 'index.html'
  })
],
// 配置實時預(yù)覽環(huán)境 
devServer: {
  contentBase: path.join(__dirname, 'dist'),
  port: 5000
}
}

package.json文件配置

"scripts": {
  "dev": "npx webpack-dev-server --open"
}

5 .判斷如何配置webpack

  • 指定源文件加入到構(gòu)建流程中被webpack控制, 配置entry
  • 指定輸出文件的位置和名稱,配置output
  • 自定義解析和轉(zhuǎn)換文件,配置module,通常是配置module.rules里的 Loader。(資源加載器)
  • 配置插件通過plugins進行配置
  • 尋找依賴模塊時,配置resolve

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • js?剪切、復(fù)制、粘貼功能實現(xiàn)

    js?剪切、復(fù)制、粘貼功能實現(xiàn)

    Navigator.clipboard?API可以用來訪問系統(tǒng)剪貼板,可以實現(xiàn)【剪切、復(fù)制、粘貼】功能。該?API?被設(shè)計用來取代使用?document.execCommand()?的剪貼板訪問方式,不兼容?IE
    2023-05-05
  • JavaScript實現(xiàn)的in_array函數(shù)

    JavaScript實現(xiàn)的in_array函數(shù)

    這篇文章主要介紹了JavaScript實現(xiàn)的in_array函數(shù),用于判斷一個值是否在數(shù)組中,類似PHP的in_array函數(shù),需要的朋友可以參考下
    2014-08-08
  • 如何在微信小程序中使用less詳解(最優(yōu)方式)

    如何在微信小程序中使用less詳解(最優(yōu)方式)

    這篇文章主要給大家介紹了關(guān)于如何在微信小程序中使用less(最優(yōu)方式)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 一些常用的Javascript函數(shù)

    一些常用的Javascript函數(shù)

    一些常用的Javascript函數(shù)...
    2006-12-12
  • JavaScript校驗Number(4,1)格式的數(shù)字實例代碼

    JavaScript校驗Number(4,1)格式的數(shù)字實例代碼

    這篇文章主要介紹了JavaScript校驗Number(4,1)格式的數(shù)字實例代碼,本文實現(xiàn)思路明確代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-03-03
  • 詳解微信小程序的不同函數(shù)調(diào)用的幾種方法

    詳解微信小程序的不同函數(shù)調(diào)用的幾種方法

    這篇文章主要介紹了微信小程序的不同函數(shù)調(diào)用的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • js 右側(cè)浮動層效果實現(xiàn)代碼(跟隨滾動)

    js 右側(cè)浮動層效果實現(xiàn)代碼(跟隨滾動)

    因為項目上有這樣的需求,在網(wǎng)上也查了些東西,之前是想找個差不多類似的套用一下。后來發(fā)覺沒有合適的,因時間緊迫就自己動手寫了一個簡單的 ,示例代碼如下 兼容火狐和IE7+
    2015-11-11
  • 解決前后端交互數(shù)據(jù)出現(xiàn)精度丟失的多種方式

    解決前后端交互數(shù)據(jù)出現(xiàn)精度丟失的多種方式

    這篇文章主要為大家介紹了解決前后端交互數(shù)據(jù)出現(xiàn)精度丟失的多種方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • 通過javascript獲取iframe里的值示例代碼

    通過javascript獲取iframe里的值示例代碼

    iframe里的值在實現(xiàn)一些比較特殊功能時需要獲取的,下面為大家詳細(xì)介紹下使用javascript獲取iframe里值的方法,感興趣的各位可以參考下哈
    2013-06-06
  • webpack中splitChunks分包策略的實現(xiàn)

    webpack中splitChunks分包策略的實現(xiàn)

    splitChunks是 webpack 中用于分包的配置選項之一,本文主要介紹了webpack中splitChunks分包策略的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-06-06

最新評論