91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

前端路由&webpack基礎配置詳解

發布時間:2020-09-04 17:03:24 來源:腳本之家 閱讀:108 作者:Tx丶 欄目:web開發

1. SPA

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

優點:

  • 不需要跳轉頁面,局部更新頁面內容
  • 前端組件化

缺點:

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

2. 前端路由:

  • 根據不用的URL標識符渲染不同的組件(不同的網頁內容)
  • 路由實現原理:
    • hash哈希(錨點) 通過hashchange監聽URL標識符改變,顯示不同的內容
<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>
// 監聽hash值的不用,讓頁面顯示不同的內容
window.onhashchange = function() {
  let app = document.getElementById('app');
  // 獲取hash值
  let hash = location.hash.substr(1);
  // 根據標識展現不同的內容 局部更新
  switch(hash) {
    case 'login':
      app.innerHTML = '托馬斯回旋...';  
      break;
    case 'home':
      app.innerHTML = '正在路上...';
      break;
    case 'list':
      app.innerHTML = '華爾茲...';
      break;
    }
  }
</script>

3. 前端模塊化

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

4. webpack基礎配置

初始化項目

npm init -y

安裝依賴包

npm install webpack -D

npm install webpack-cli -D

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

webpack.config.js

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

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

package.json文件配置

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

5 .判斷如何配置webpack

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

淮滨县| 苏尼特左旗| 营山县| 永安市| 惠州市| 汝南县| 五河县| 婺源县| 罗田县| 沅陵县| 西丰县| 五台县| 治县。| 讷河市| 包头市| 武穴市| 古交市| 如东县| 巴楚县| 奉新县| 平利县| 紫阳县| 寻乌县| 台北市| 大洼县| 孙吴县| 阳朔县| 谷城县| 万安县| 彭州市| 白朗县| 涡阳县| 荔波县| 大丰市| 金秀| 策勒县| 南乐县| 仲巴县| 弋阳县| 伊金霍洛旗| 安岳县|