Maison > Article > interface Web > Apprentissage de base du nœud : ce qu'il faut savoir sur le front-end [Résumé]
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 !
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.
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.
//检查fs内存中的缓存是否存在如果不存在则加载fs模块 let fs = require("fs") //检查fs内存中的缓存(无)=》检查是否核心模块=》检查扩展名 let demo = require("./demo")
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.
exports
ou module.exports
Exposé en externe. interfaceexports
或者 module.exports
对外暴露接口require
加载另外的模块我们在nodejs中常用require exports module.exports都是基于Commonjs来的。
异步操作
异步操作对于前端开发很易了解,我们在JavaScript中到处都充斥的异步操作,回调函数,promise,setTimeout这些都是异步相关的操作,最基础的DOM渲染也是异步的,nodejs和JavaScript关联最深的也是这块,但大家请注意这两个处理方式有一些的不同,不同点此处不在多说后续会更新。以下简述下node的异步特点:
网上找到的一张事件循环的图:
V8引擎
API
,如读写文件、网络请求、系统信息等。另一方面,因为CPU
执行的是机器码,它还负责将JavaScript
代码解释成机器指令序列执行,这部分工作是由V8引擎
require
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 : 🎜 🎜 🎜🎜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!