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

溫馨提示×

溫馨提示×

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

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

node前端需了解的知識點有哪些

發布時間:2023-04-13 11:22:07 來源:億速云 閱讀:104 作者:iii 欄目:web開發

這篇文章主要介紹“node前端需了解的知識點有哪些”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“node前端需了解的知識點有哪些”文章能幫助大家解決問題。

基本特點

快速了解nodejs可以從以下幾個方面來看看:node的模塊概念(ECMAScript2015已支持前端很容易理解),V8引擎(和瀏覽器同樣),異步操作(基于v8與瀏覽器處理略有不同),事件驅動(基于v8與瀏覽器略有不同),node基礎API。

模塊

nodejs的模塊大概可以分為三種:核心模塊 第三方模塊 自定義模塊。每種模塊的加載優先級都不相同。

  • 核心模塊:nodejs內置模塊,可以理解為nodejs的基礎API,例如我們常用的path os fs等等。這些模塊也是我們nodejs與服務器交互的基礎。

  • 第三方模塊:nodejs包管理工具平臺安裝的npm包。

  • 自定義模塊:這個通常值的是我們自己定義的文件模塊。

模塊的加載編譯

  • 文件解析路徑:檢查是否存在緩存 =》檢查是否為核心模塊=》檢查擴展名=》解析執行(根據不同后綴名)

//檢查fs內存中的緩存是否存在如果不存在則加載fs模塊
let fs = require("fs")
//檢查fs內存中的緩存(無)=》檢查是否核心模塊=》檢查擴展名
let demo = require("./demo")

  • 緩存優先原則:由文件解析路徑我們可以看出nodejs會先檢查內存中的緩存是否存在,如果存在則加載緩存。

  • 模塊編譯:本文不做說明,下一章節會詳細說明此流程。

規范

JavaScript模塊發展的概念基本如: "script"引入=> 作用域函數=》自執行函數=〉 Commonjs(AMD)。在nodejs中的模塊主要采用commonjs規范,如下所示。

  • 每個文件就是一個模塊, 有自己的作用域。

  • 每個文件中定義的變量、函數、類都是私有的,對其它文件不可見

  • 每個模塊內部可以通過 exports 或者 module.exports 對外暴露接口

  • 每個模塊通過 require 加載另外的模塊

我們在nodejs中常用require exports module.exports都是基于Commonjs來的。

異步操作

異步操作對于前端開發很易了解,我們在JavaScript中到處都充斥的異步操作,回調函數,promise,setTimeout這些都是異步相關的操作,最基礎的DOM渲染也是異步的,nodejs和JavaScript關聯最深的也是這塊,但大家請注意這兩個處理方式有一些的不同,不同點此處不在多說后續會更新。以下簡述下node的異步特點:

  • 異步是通過Event Loop實現,其中有宏任務和微任務的概念

  • node和JavaScript在異步的處理上有所區別

網上找到的一張事件循環的圖:node前端需了解的知識點有哪些

V8引擎

  • V8 是驅動 Google Chrome 的 JavaScript 引擎的名稱。 這是在使用 Chrome 瀏覽時獲取我們的 JavaScript 并執行它的東西。

  • 在Nodejs,v8是用來它提供了多種可調用的API,如讀寫文件、網絡請求、系統信息等。另一方面,因為CPU執行的是機器碼,它還負責將JavaScript代碼解釋成機器指令序列執行,這部分工作是由V8引擎完成

node前端需了解的知識點有哪些

nodejs的內核是V8,v8是用來將JavaScript編譯成機器可以識別的語言

事件驅動

事件驅動其實是軟件架構中一種常用的架構模式,簡單的說就是通過創建(注冊)事件并監聽這個事件,根據事件的狀態來進行處理。nodejs中大部分核心 API 都是圍繞慣用的異步事件驅動架構構建的,另外node中的核心模塊events可以用來自定義創建事件。

常用API

  • fs:常用于文件的查看,編輯,創建等操作

  • http:網絡的關鍵模塊

  • socket:socket網絡通信

  • events:事件模塊

應用場景

  • 后臺服務

  • 腳本處理

服務端

在nodejs剛出現的幾年,對于是否將nodejs應用在生產環境中,多數開發者都不看好。但是在最近幾年的實踐后,nodejs的單線程處理高并發場景的應用已經得到了很好的檢驗。目前在線上產品中已有不少基于nodejs的服務。另外nodejs也有許多類似于java spring穩定的服務端框架,下面介紹幾款常用的

  • Koa:以洋蔥模型的開發模式

  • Express:以路由為核心的服務端nodejs框架

  • Fastify:一個占用資源極小,并且速度極快的框架,目前來看,它是速度最快的框架。

注:還有很多針對于不同業務類型的框架,大家有興趣的可以去了解下

工具

我們在使用vue或react全家桶進行開發時,你有沒有去思考為何一行命令就可以運行起前端的服務?為何一行命令能夠進行前端的編譯?為何我們謝vue代碼最終輸出了一堆js?當我們去研究這些功能的源碼時會發現幾乎這些能力全是基于nodejs來開發。下面列舉我們在日常工具中nodejs的使用。

  • 本地服務:webpack啟用的本地服務插件都是基于nodejs的http模塊實現的

  • 編譯打包:vue的.vue文件react的jsx或者常用的.ts文件最后如何成為js文件的,大家都覺得是webpack其實整個webpack都是基于nodejs的其中編譯文件能力就是和nodejs的fs模塊息息相關的。

關于“node前端需了解的知識點有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

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

AI

铜陵市| 富蕴县| 丰镇市| 安化县| 沾益县| 永丰县| 怀仁县| 沁水县| 平武县| 东乌珠穆沁旗| 石城县| 南阳市| 漠河县| 桓台县| 沈阳市| 綦江县| 天津市| 鱼台县| 淮滨县| 高青县| 仪陇县| 卓资县| 勐海县| 家居| 手游| 昌江| 类乌齐县| 庄浪县| 皋兰县| 军事| 阳东县| 安陆市| 翼城县| 朔州市| 固原市| 新乡市| 黎川县| 乌拉特中旗| 宝坻区| 射洪县| 庄浪县|