13_前端工程化_ES6

1.前端工程化概念

前端工程化是使用軟件工程的方法單獨解決前端的開發流程中模塊化、組件化、規范化、自動化的問題,其主要目的為了提高效率和降低成本。

在這里插入圖片描述

前后端分離(前端代碼工程化獨立出來形成一個單獨的app)

1.開發分離

2.部署分離

3.服務器分離

本次技術棧

  • ECMAScript6 VUE3中大量使用ES6語法
  • Nodejs 前端項目運行環境
  • npm 依賴下載工具
  • vite 前端項目構建工具
  • VUE3 優秀的漸進式前端框架
  • router 通過路由實現頁面切換
  • pinia 通過狀態管理實現組件數據傳遞
  • axios ajax異步請求封裝技術實現前后端數據交互
  • Element-plus 可以提供豐富的快速構建網頁的組件倉庫

2.ECMA6Script

  • 由于VUE3中大量使用了ES6的語法,所以ES6成為了學習VUE3的門檻之一

2.1es6的變量和模板字符串

  • ES6 新增了letconst,用來聲明變量,使用的細節上也存在諸多差異

  • let 和var的差別

1、let 不能重復聲明2、let有塊級作用域,非函數的花括號遇見let會有塊級作用域,也就是只能在花括號里面訪問。3、let不會預解析進行變量提升4、let 定義的全局變量不會作為window的屬性5、let在es6中推薦優先使用
  • let更像Java中聲明變量的感覺,var可能更加隨意了
        // 1.let生命變量不能重復聲明let c =1;c = 100// let c = 99;// 2.let有作用域,只能在花括號訪問{let i = 100}// console.log(i)      //ReferenceError: i is not defined// 3.let不會預解析進行變量提升console.log(m)var m=99// console.log(p)// let p=98// ReferenceError: Cannot access 'p' before initialization// at 01let和const.html:27:21// 4.let定義的變量不會作為全局變量 var可以console.log(window.a)// 5.const就是不可修改的let        有點像final修飾的變量一樣,const修飾的量必須賦值// const b =1// b=2// 6.模板字符串對字符串進行處理 ``放入標簽即可,避免了使用單雙引號的難點        拼接和linux一樣let city = "henan"let info = `    <ul><li></li><li></li><li>${city}</li><li></li><li></li></ul>`

2.2 es6的解構表達式

  • 解構表達式在數組上的使用在這里插入圖片描述

  • 解構表達式進行 對象取值操作 并賦值給let變量

在這里插入圖片描述

  • 解構表達式抓形參

    在這里插入圖片描述

小結:
解構表達式目的是抓取對象,數組,形參列表的值
支持批量抓取//2. 使用特點 箭頭函數this關鍵字// 在 JavaScript 中,this 關鍵字通常用來引用函數所在的對象,// 或者在函數本身作為構造函數時,來引用新對象的實例。// 但是在箭頭函數中,this 的含義與常規函數定義中的含義不同,// 并且是由箭頭函數定義時的上下文來決定的,而不是由函數調用時的上下文來決定的。// 箭頭函數沒有自己的this,this指向的是外層上下文環境的this

2.3 es6箭頭函數

就是lambda表達式

  • 箭頭函數聲明
    let fun2 =()=>{}let fun3 = (x)=>{return x+1}
  • 2.箭頭函數的各種省略
{--  小括號可省  參數僅1個--  花括號可省  代碼僅一行--  return可省  代碼僅一行且帶return
}
  • 3.箭頭函數的this

    在這里插入圖片描述

  • 意義

普通函數的this表示調用者

箭頭函數this表示外層的this

2.4 rest和spread

rest參數,形參上使用和java可變參數幾乎一樣

    <script>// 1 參數列表中多個普通參數  普通函數和箭頭函數中都支持let fun1 = (a,b,c,d=100)=> console.log([a,b,c,d])fun1()// 2 ...作為參數列表,稱之為rest參數 普通函數和箭頭函數中都支持 ,因為箭頭函數中無法使用arguments,rest是一種解決方案// let fun2 = (...args)=>{console.args}// fun2(1,2,3,4,5)// rest參數在一個參數列表中的最后一個只,這也就無形之中要求一個參數列表中只能有一個rest參數let arr  =[1,2,3]// let info = ...arr    這樣寫的是錯的  ...arr  表示1,2,3let fun3 = (a,b,c)=>{console.log(a,b,c)}fun3(...arr)            //這樣就可以將數組展開 放入方法形參供其使用// 3.spread可以快速合并數組let a =[1,2,3]      //總之一個道理...arr表示去括號的操作let b =[1,2,3]let c =[1,2,3]console.log(...a,...b,...c)//1 2 3 1 2 3 1 2 3//js的對象是{}包裹,spread同樣適用</script>

Appendix

普通函數的this表示調用者

箭頭函數this表示外層的this

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/22986.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/22986.shtml
英文地址,請注明出處:http://en.pswp.cn/web/22986.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

信號(上)

本節目標&#xff1a; 1. 掌握Linux信號的基本概念 2. 掌握信號產生的一般方式 3. 理解信號遞達和阻塞的概念&#xff0c;原理。 4. 掌握信號捕捉的一般方式。 5. 重新了解可重入函數的概念。 6. 了解競態條件的情景和處理方式 7. 了解SIGCHLD信號&#xff0c; 重新編寫信號處理…

ChatGPT基本原理詳細解說

ChatGPT基本原理詳細解說 引言 在人工智能領域&#xff0c;自然語言處理&#xff08;NLP&#xff09;一直是研究的熱點之一。隨著技術的發展&#xff0c;我們見證了從簡單的聊天機器人到復雜的語言模型的演變。其中&#xff0c;ChatGPT作為一項突破性技術&#xff0c;以其強大…

【Vue】自定義指令-v-loading指令的封裝

場景 實際開發過程中&#xff0c;發送請求需要時間&#xff0c;在請求的數據未回來時&#xff0c;頁面會處于空白狀態 > 用戶體驗不好 需求 封裝一個 v-loading 指令&#xff0c;實現加載中的效果 分析 本質 loading效果就是一個蒙層&#xff0c;蓋在了盒子上 數據請求…

從零開始精通Onvif之設備發現

設備發現的意義 在復雜的網絡環境中&#xff0c;如何快速而準確地識別網絡上的Onvif設備&#xff0c;對于攝像頭廠商、系統集成商、開發人員乃至最終用戶來說&#xff0c;都顯得至關重要。 首先&#xff0c;設備發現有效簡化了集成的復雜度。在沒有統一標準之前&#xff0c;每個…

2004NOIP普及組真題 2. 花生采摘

線上OJ&#xff1a; 【04NOIP普及組】花生采摘 核心思想&#xff1a; 1、本題為貪心即可。 2、因為本題嚴格限制了順序&#xff0c;所以先把每個節點的花生數量按降序排序。然后逐一判斷下一個花生是否需要去采摘即可 3、每一次采摘完&#xff0c;記錄耗時 t 以及采集的花…

力扣第417題測試程序

題目描述&#xff1a; 有一個 m n 的矩形島嶼&#xff0c;與 太平洋 和 大西洋 相鄰。 “太平洋” 處于大陸的左邊界和上邊界&#xff0c;而 “大西洋” 處于大陸的右邊界和下邊界。 這個島被分割成一個由若干方形單元格組成的網格。給定一個 m x n 的整數矩陣 heights &#…

基于web的垃圾分類回收系統的設計

管理員賬戶功能包括&#xff1a;系統首頁&#xff0c;個人中心&#xff0c;管理員管理&#xff0c;用戶管理&#xff0c;公告管理&#xff0c;運輸管理&#xff0c;基礎數據管理 用戶賬戶功能包括&#xff1a;系統首頁&#xff0c;個人中心&#xff0c;運輸管理&#xff0c;公告…

pyqt QlineEdit內部增加按鈕方法

pyqt QlineEdit內部增加按鈕方法 def addButton(self,lineEdit):btn QtWidgets.QPushButton("")icon1 QtGui.QIcon()icon1.addPixmap(QtGui.QPixmap(":/image/images/th.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)btn.setIcon(icon1)btn.setStyleShe…

全光譜led燈的危害有哪些?曝光低質量全光譜led燈產生的四大風險

眼睛是人類獲取信息最重要的感官器官之一&#xff0c;而近視則會導致視力模糊&#xff0c;進而影響學習效果和生活品質。因此&#xff0c;如何保護眼睛&#xff0c;尤其是在學習和使用電子設備時&#xff0c;成為了一個迫切需要解決的問題。然而在護眼領域上&#xff0c;護眼臺…

【DevOps】網絡安全進階之路:打造更安全、更可靠的網站

目錄 一、網站面臨的主要安全威脅 1、SQL注入攻擊 2、跨站腳本攻擊(XSS) 3、跨站請求偽造(CSRF) 4、文件上傳漏洞 5、不安全的直接對象引用 6、安全配置錯誤 7、使用含有已知漏洞的組件 二、網站安全防護措施 1、輸入驗證與過濾 2、使用參數化查詢 3、數據輸出編碼…

SCAU 數據結構 實驗六 排序算法

![[Pasted image 20240 8638 直接插入排序 Description 用函數實現直接插入排序&#xff0c;并輸出每趟排序的結果. 輸入格式 第一行&#xff1a;鍵盤輸入待排序關鍵的個數n 第二行&#xff1a;輸入n個待排序關鍵字&#xff0c;用空格分隔數據 輸出格式 每行輸出一趟排序…

掌握Java設計模式的23種武器(全):深入解析與實戰示例

目錄 一、創建型模式 1. 單例模式 (Singleton Pattern) 2. 工廠模式 (Factory Pattern) 3. 抽象工廠模式 (Abstract Factory Pattern) 4. 建造者模式 (Builder Pattern) 5. 原型模式 (Prototype Pattern) 二、結構型模式 6. 適配器模式 (Adapter Pattern) 7. 橋接模式…

通信的本質是什么

通信的本質是信息的傳遞和交換。在通信過程中&#xff0c;信息從一個主體&#xff08;發送方&#xff09;傳遞到另一個主體&#xff08;接收方&#xff09;&#xff0c;目的是使接收方理解或使用發送方傳遞的信息。無論使用什么樣的媒介或技術&#xff0c;通信的核心都是在不同…

十三、resultMap解析

分為兩部分&#xff1a;解析和使用 解析 1.解析XML的時候單獨解析所有的resultMap標簽&#xff0c;封裝成ResultMap對象存入configuration中 2.解析XML中的SQL語句&#xff0c;封裝MappedStatement對象&#xff0c;這里會根據SQL的返回類型是resultMap還是resultType做處理。如…

C語言 | Leetcode C語言題解之第133題克隆圖

題目&#xff1a; 題解&#xff1a; struct Node** visited; int* state; //數組存放結點狀態 0&#xff1a;結點未創建 1&#xff1a;僅創建結點 2&#xff1a;結點已創建并已填入所有內容void bfs(struct Node* s) {if (visited[s->val] && state[s->val] 2…

【嵌入式系統實踐】實驗三EXTI按鈕外部中斷控制LED燈參考代碼

此內容不屬于實驗內容&#xff0c;因自己手頭有一STM32F103&#xff0c;故驗證性的進行代碼實驗&#xff0c;按照老師課堂ppt進行了一下復現。 通過按鈕控制LED燈的亮滅(狀態取反)。 main.c代碼&#xff1a; #include "STM32F10X.h" #include "stdio.h"…

Open3D Guided濾波(Python版本)

文章目錄 一、簡介二、實現代碼三、實現效果參考資料一、簡介 Guided Filter原本主要用于2D圖像的降噪等處理,但經過適當的修改后,它可以有效地應用于3D點云的降噪。這種方法能夠保留點云中的細節信息,并且對邊緣和曲面進行保護。 其具體計算過程如下所述: 1.局部線性假設:…

Python Lambda函數的應用實例教程

在Python編程中&#xff0c;lambda函數是一種簡潔且強大的工具&#xff0c;用于創建小型匿名函數。它們在需要快速定義簡單函數時特別有用。本文將詳細介紹lambda函數的語法及其多種應用實例&#xff0c;幫助讀者更好地理解和使用lambda函數。 一、lambda函數的基本概念 1.1 什…

c++(內存分配,構造,析構)

#include <iostream>using namespace std; class Per { private:string name;int age;double *height;double *weigh; public://無參構造Per(){cout << "Per::無參構造" << endl;}//有參構造Per(string name,int age,double height,double weigh):…

Nginx 的 stream 模塊,配置轉發redis和mysql

Nginx 的 stream 模塊確實可以配置多個 upstream 塊&#xff0c;用于定義多個后端服務器組。然而&#xff0c;需要注意的是&#xff0c;每個 upstream 塊通常用于一種特定類型的服務&#xff0c;例如定義一組TCP服務器&#xff0c;可以是Redis服務器、MySQL服務器或其他任何TCP…