Maison >interface Web >js tutoriel >Apprentissage de base du nœud : ce qu'il faut savoir sur le front-end [Résumé]

Apprentissage de base du nœud : ce qu'il faut savoir sur le front-end [Résumé]

青灯夜游
青灯夜游avant
2023-03-30 20:51:361981parcourir

Cet article parlera des points de connaissances de base de Node, résumera et partagera certaines connaissances de Nodejs que le front-end doit connaître. J'espère qu'il sera utile à tout le monde !

Apprentissage de base du nœud : ce qu'il faut savoir sur le front-end [Résumé]

Qu'il s'agisse de développement front-end ou back-end, je crois personnellement que vous ne devriez pas vous limiter à votre propre domaine. Ce n'est qu'en sortant de votre zone de confort que vous pourrez vous améliorer, même si cela peut devenir parfait. nous devons également savoir qu'apprendre sans réfléchir mènera à la confusion, il est donc nécessaire de comprendre les connaissances côté serveur qui sont les plus étroitement liées au front-end, et l'émergence de nodejs peut être considérée comme donnant le développement front-end. un moyen plus rapide de comprendre le backend. Voici quelques-unes de mes expériences dans l'apprentissage de nodejs du point de vue front-end.

Fonctionnalités de base

Pour comprendre rapidement nodejs, vous pouvez examiner les aspects suivants : le concept de module du nœud (ECMAScript2015 a pris en charge le front-end et est facile à comprendre), le moteur V8 (identique au navigateur), le fonctionnement asynchrone (basé sur la v8 et le traitement du navigateur est légèrement différent), piloté par les événements (basé sur la v8 et le navigateur est légèrement différent), API basée sur les nœuds. [Recommandations de didacticiels connexes : tutoriel vidéo Nodejs, Enseignement de la programmation]

module

Les modules Nodejs peuvent être grossièrement divisés en trois types : modules de base modules tiers modules personnalisés. Chaque module a une priorité de chargement différente.

  • Module principal : module intégré de nodejs, qui peut être compris comme l'API de base de nodejs, comme notre chemin couramment utilisé os fs, etc. Ces modules servent également de base à nos nodejs pour interagir avec le serveur.
  • Module tiers : package npm installé par la plateforme d'outils de gestion de packages nodejs.
  • Module personnalisé : cela fait généralement référence à notre propre module de fichiers défini.

Chargement et compilation du module

  • Chemin d'analyse du fichier : Vérifiez s'il existe un cache=》Vérifiez s'il s'agit d'un module principal=》Vérifiez l'extension=》Analyser et exécuter (selon différents noms de suffixe)
//检查fs内存中的缓存是否存在如果不存在则加载fs模块
let fs = require("fs")
//检查fs内存中的缓存(无)=》检查是否核心模块=》检查扩展名
let demo = require("./demo")
  • Principe de priorité du cache : D'après le chemin d'analyse des fichiers, nous pouvons voir que nodejs va d'abord vérifier si le cache dans la mémoire existe, et s'il existe, charger le cache.
  • Compilation de modules : cet article n'expliquera pas ce processus. Le chapitre suivant expliquera ce processus en détail.

Standards

Le concept de développement de modules JavaScript est essentiellement le suivant : introduction "script" => Fonction Scope => Fonction auto-exécutable => Commonjs (AMD). Les modules de nodejs adoptent principalement les spécifications commonjs, comme indiqué ci-dessous.

  • Chaque fichier est un module et a sa propre portée.
  • Les variables, fonctions et classes définies dans chaque fichier sont privées et invisibles pour les autres fichiers
  • Chaque module est accessible via exports ou module.exports Exposé en externe. interfaceexports 或者 module.exports 对外暴露接口
  • 每个模块通过 require 加载另外的模块

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

异步操作

异步操作对于前端开发很易了解,我们在JavaScript中到处都充斥的异步操作,回调函数,promise,setTimeout这些都是异步相关的操作,最基础的DOM渲染也是异步的,nodejs和JavaScript关联最深的也是这块,但大家请注意这两个处理方式有一些的不同,不同点此处不在多说后续会更新。以下简述下node的异步特点:

  • 异步是通过Event Loop实现,其中有宏任务和微任务的概念
  • node和JavaScript在异步的处理上有所区别

网上找到的一张事件循环的图:Apprentissage de base du nœud : ce quil faut savoir sur le front-end [Résumé]

V8引擎

  • V8 是驱动 Google Chrome 的 JavaScript 引擎的名称。 这是在使用 Chrome 浏览时获取我们的 JavaScript 并执行它的东西。
  • 在Nodejs,v8是用来它提供了多种可调用的API,如读写文件、网络请求、系统信息等。另一方面,因为CPU执行的是机器码,它还负责将JavaScript代码解释成机器指令序列执行,这部分工作是由V8引擎
  • Chaque module charge un autre module via require

Apprentissage de base du nœud : ce quil faut savoir sur le front-end [Résumé]Nous utilisons couramment les exportations require dans nodejs Module. Les exportations sont toutes basées sur Commonjs.

Opérations asynchrones

Les opérations asynchrones sont faciles à comprendre pour le développement front-end. Nous regorgeons d'opérations asynchrones, de fonctions de rappel, de promesses et de setTimeout partout dans JavaScript. Ce sont toutes des opérations liées asynchrones, et la plupart. Le rendu DOM de base est également asynchrone, qui est le plus étroitement lié entre nodejs et JavaScript, mais veuillez noter qu'il existe quelques différences entre les deux méthodes de traitement. Je n'entrerai pas dans les détails des différences ici et je les mettrai à jour plus tard. Ce qui suit est une brève description des caractéristiques asynchrones du nœud :

🎜🎜Asynchrone est implémenté via Event Loop, qui inclut les concepts de macro-tâches et de micro-tâches 🎜🎜Le nœud et JavaScript ont des différences dans le traitement asynchrone🎜🎜🎜Un événement trouvé en ligne Image en boucle : Apprentissage de base du nœud : ce quil faut savoir sur le front-end [Résumé]🎜 🎜 🎜🎜V8 Engine🎜🎜🎜🎜🎜V8 est le nom du moteur JavaScript qui pilote Google Chrome. C'est quelque chose qui prend notre JavaScript et l'exécute lors de la navigation avec Chrome. 🎜🎜Dans Nodejs, la v8 est utilisée. Elle fournit une variété d'API appelables, telles que la lecture et l'écriture de fichiers, les requêtes réseau, les informations système, etc. D'un autre côté, comme le CPU exécute le code machine, il est également responsable de l'interprétation du code JavaScript en une séquence d'instructions machine à exécuter. Cette partie du travail est effectuée par. le moteur V8Complet🎜🎜🎜🎜Le cœur de nodejs est le V8, qui est utilisé pour compiler JavaScript dans un langage reconnaissable par la machine🎜🎜🎜🎜Event-driven🎜🎜🎜🎜Event -driven est en fait un modèle architectural couramment utilisé dans l'architecture logicielle. En termes simples, il s'agit de créer (enregistrer) un événement, d'écouter cet événement et de le traiter en fonction de l'état de l'événement. La plupart des API principales de nodejs sont construites autour de l'architecture idiomatique asynchrone basée sur les événements. De plus, les événements du module principal de node peuvent être utilisés pour créer des événements personnalisés. 🎜<p><strong><span style="max-width:90%">API couramment utilisée</span></strong></p> <ul> <li>fs : couramment utilisée pour la visualisation, l'édition, la création et d'autres opérations de fichiers </li> <li>http : module clé du réseau </li> <li>socket : socket de communication réseau </li> <li>events : module d'événements </li> </ul> <h2> <strong>Scénarios d'application </strong> </h2> <ul> <li>Service backend </li> <li>Traitement de script </li> </ul> <p><strong><span style="font-size: 18px;">Serveur </span></strong></p> <p> Au cours des premières années où nodejs est apparu, la plupart des développeurs n'étaient pas optimistes quant à l'opportunité d'appliquer nodejs dans un environnement de production. Cependant, après la pratique de ces dernières années, l'application monothread de nodejs pour gérer des scénarios à haute concurrence a été bien testée. Il existe actuellement de nombreux services basés sur Nodejs dans les produits en ligne. De plus, nodejs dispose également de nombreux frameworks côté serveur stables similaires à Java Spring. En voici quelques-uns couramment utilisés </p> <ul> <li>Koa : un modèle de développement basé sur le modèle onion </li> <li>Express : un framework nodejs côté serveur avec le routage comme. le noyau </li> <li>Fastify : une occupation Un framework avec des ressources extrêmement réduites et une vitesse extrêmement rapide Actuellement, c'est le framework le plus rapide. </li> </ul> <p>Remarque : Il existe de nombreux frameworks pour différents types d'entreprise. Si vous êtes intéressé, vous pouvez en apprendre davantage à leur sujet</p> <p><strong><span style="font-size: 18px;">Outils</span></strong></p> <p>Lorsque nous utilisons le bucket familial Vue ou React pour le développement, y avez-vous déjà pensé. ? Pourquoi un service front-end peut-il être exécuté avec une seule ligne de commande ? Pourquoi une ligne de commandes peut-elle compiler le front-end ? Pourquoi notre code Vue a-t-il fini par produire un tas de js ? Lorsque nous étudions le code source de ces fonctions, nous constaterons que presque toutes ces fonctionnalités sont développées sur la base de nodejs. Ce qui suit répertorie notre utilisation de nodejs dans les outils quotidiens. </p> <ul> <li>Service local : les plug-ins de service local activés par webpack sont tous implémentés sur la base du module http de nodejs </li> <li>Compilation et packaging : le fichier .vue de vue, les fichiers jsx de réaction ou les fichiers .ts couramment utilisés deviennent enfin des fichiers js, tout le monde pense que c'est du webpack. En fait, l'ensemble du webpack est basé sur nodejs. La capacité de compiler des fichiers est étroitement liée au module fs de nodejs. </li> </ul> <h2><strong>Résumé</strong></h2> <p>J'ai brièvement parlé des bases de nodejs du point de vue du front-end. Chaque point peut être discuté individuellement. Il s'agit simplement de donner à chacun une compréhension générale de node pour faciliter l'apprentissage ultérieur. À l'heure actuelle, j'ai réalisé de nombreux projets en utilisant nodejs. Après l'avoir davantage utilisé, je peux examiner certains développements techniques front-end dans une perspective plus large. </p> <p>Pour plus de connaissances sur les nœuds, veuillez visiter : <a href="https://www.php.cn/course/list/24.html" target="_blank" textvalue="nodejs 教程">tutoriel Nodejs</a> ! </p>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer