js模块化开发

ES6之模块化导入导出

て烟熏妆下的殇ゞ 提交于 2019-11-29 00:01:36
1、概述 在js的历史上一直没有模块(module)体系,无法将一个大程序拆分成相互依赖的小文件,再用简单的方法拼装起来,这对开发大型的、复杂的项目形成了巨大障碍。 在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种。前者用于服务器,后者用于浏览器。ES6 在语言标准的层面上,实现了模块功能, 而且实现得相当简单,完全可以取代 CommonJS 和 AMD 规范,成为浏览器和服务器通用的模块解决方案。 2、ES6 模块(module)的设计思想是什么? 那就是尽量的静态化,使得编译时就能确定依赖关系 3、CommCommonJS模块 和 ES6 模块比较 看两段代码 // 导出 node 文件系统的几个方法 let {stat,exists,readFile} = require('fs');注意:这段代码实际上是加载了整个 fs 模块。这种加载方式称为“运行时加载”,因为只有运行时才能得到这个对象。导致完全没办法在编译时做“静态优化”。 // ES6 模块 import {stat,exists,readFile} from 'fs'注意:这段代码只导出了三个方法,其他的方法没有加载。这种方式称为“编译时加载”,ES6可以在编译时就完成模块加载,效率要比CommonJS模块的加载方式高。   4、模块功能命令之 export 和

浅谈CSS的模块化

烈酒焚心 提交于 2019-11-28 08:06:43
一、简介 Web前端模块化:HTML模块化、CSS模块化以及JS模块化三个部分; 二、CSS模块化背景 对于小型项目来说,css的量还不至于庞大,问题没有凸显,而如果要开发和持续维护一个较为大型的项目,那就需要对css进行管理和规范了,否则会发生不可挽回的后果(吓唬谁呢??)。 .dossierList-Head{ width: 94%; height: 8%; margin-left: 3%; margin-right: 3%; display: flex; justify-content: space-between; align-items: center } .dossierList-Head .head_left{ width: 100%; height: 100%; display: flex; align-items:center; } .dossierList-Head .head_left .logo{ width: 43px; height: 50px; padding-right: 5px; } .dossierList-Head .head_left h1{ font-weight: bold; font-stretch: normal; letter-spacing: 2px; background-image: linear-gradient(0deg,

node.js的模块化开发

余生颓废 提交于 2019-11-28 00:24:09
node.js的代码都是构建在模块化开发的基础之上,模块化开始也是node.js的核心之一。 传统非模块化开发的缺点:1.命名冲突 2.文件依赖 标准的模块化规范: 1。AMD -requirejs 2。CMD- seajs 模块化的规范定义的一些写代码的规则,只要遵循了同样的标准,基本上风格都是一致的 服务端的模块化规范: 1.Common.js -Node.js 模块化相关的规则: 1.一个js文件 都是一个独立的模块,模块内部的成员都是相互独立的 2.模块化的导入和导出 案例1(exports): 在01.js文件中 var sum=function(a,b){ sum = parseInt(a)+parseInt(b); } exports.sum=sum; 在02.js文件中 //用require 进入模块 var module =require(./01.js) //当前文件夹下的01.js文件 var ret =module.sum(12,13); console.log(ret); View Code 案例2(moudle) 在01.js文件中 var sum=function(a,b){ sum = parseInt(a)+parseInt(b); } module.exports=sum; 在02.js文件中 var module=require('./01

浅谈前端工程化、模块化、组件化

泄露秘密 提交于 2019-11-27 16:32:41
什么是前端工程化、模块化、组件化? 前端工程化 工程化是一种思想而不是某种技术(当然为了实现工程化我们会用一些技术) 再用一句通俗的话来概括前端工程化:前端工程化就是用做工程的思维看待和开发自己的项目,而不再是直接撸起袖子一个页面一个页面开写 前端模块化 前端工程化是一个高层次的思想,而模块化和组件化是为工程化思想下相对较具体的开发方式,因此可以简单的认为模块化和组件化是工程化的表现形式。 模块化开发, 一个模块就是一个实现特定功能的文件,有了模块我们就可以更方便的使用别人的代码,要用什么功能就加载什么模块。 模块化开发的4点好处:   1 避免变量污染,命名冲突   2 提高代码复用率   3 提高维护性   4 依赖关系的管理 那具体什么是模块化呢?还是举简单的例子,我们要写一个实现A功能的JS代码,这个功能在项目其他位置也需要用到,那么我们就可以把这个功能看成一个模块采用一定的方式进行模块化编写,既能实现复用还可以分而治之,同理在写样式的时候,如果我们需要某种特殊的样式,会在很多地方应用,那么我们也可以采用一定的方式进行CSS的模块化,具体说来,JS模块化方案很多有AMD/CommonJS/UMD/ES6 Module等,CSS模块化开发大多是在less、sass、stylus等预处理器的import/mixin特性支持下实现的 总体而言, 模块化不难理解

Vue实战狗尾草博客后台管理系统第七章

时光怂恿深爱的人放手 提交于 2019-11-27 05:21:39
Vue实战狗尾草博客后台管理平台第七章 本章内容为借助模块化来阐述Vuex的进阶使用。 在复杂项目的架构中,对于数据的处理是一个非常头疼的问题。处理不当,不仅对维护增加相当的工作负担,也给开发增加巨大的压力。 在大量的实战开发过程中,狗尾草总结出来的较为友好的方式是 使用一个单独的数据管理库去管理数据。 这样不会给页面增加额外的负担。且API的调用也属于数据处理/获取的部分。因此也放在数据管理下统一管理 注:本章节内容与狗尾草博客管理平台没有任何关系,仅作为Vuex的进阶使用来分享 对模块化的简单阐述 在开始时,我们需要先对模块对有一个清晰的定义! 这里不扯AMD与CMD规范。 简单论述为:对于复杂系统的开发。制作清晰的分界。广义上讲就是将一湖的水进行"渠道化分流"。但是微观上确实有非常多的东西,且可以根据具体的项目进行具体的场景分析从而进行设计。 上面所说也可以理解为模块的理解或者使用场景。 如何实现 在平时的开发中,我们可以对什么进行模块化? 我们需要一个目标,这个目标作为系统来理解。那我们就必须知道的是,我们的系统有哪些功能与业务。必须有一个清晰的四位导图来支撑。 就平常的系统来讲。所必需的的有不同功能的业务。这些业务在是实现的过程中,又分为: view , style , js 。这些又可以进行划分为: 组件的抽离 , 样式的抽离 , 工具类的抽离 , 静态资源的抽离

面试(网上)—— 前端工程化(草稿)

时光总嘲笑我的痴心妄想 提交于 2019-11-26 12:35:44
1.webpack 与 gulp 区别 Gulp 就是为了规范前端开发流程,实现前后端分离、模块化开发、版本控制、文件合并与压缩、mock数据等功能的一个前端自动化构建工具。 Gulp 像是流水线,产品生产的 整个过程 都要受到 流水线控制。 Gulp是通过task对整个开发过程进行构建。 webpack 是对 前端资源模块化管理和打包 的工具,通过 loader,可以将 任何资源js、css、图片、less、commonjs、es6等模块化。 2. 来源: https://blog.csdn.net/from_shanghai/article/details/97623022