前端开发

构建单页Web应用

房东的猫 提交于 2020-01-04 03:16:13
构建单页Web应用 摘自 前端农民工的博客 让我们先来看几个网站: coding teambition cloud9 注意这几个网站的相同点,那就是在浏览器中,做了原先“应当”在客户端做的事情。它们的界面切换非常流畅,响应很迅速,跟传统的网页明显不一样,它们是什么呢?这就是单页Web应用。 所谓单页应用,指的是在一个页面上集成多种功能,甚至整个系统就只有一个页面,所有的业务功能都是它的子模块,通过特定的方式挂接到主界面上。它是AJAX技术的进一步升华,把AJAX的无刷新机制发挥到极致,因此能造就与桌面程序媲美的流畅用户体验。 其实单页应用我们并不陌生,很多人写过ExtJS的项目,用它实现的系统,很天然的就已经是单页的了,也有人用jQuery或者其他框架实现过类似的东西。用各种JS框架,甚至不用框架,都是可以实现单页应用的,它只是一种理念。有些框架适用于开发这种系统,如果使用它们,可以得到很多便利。 开发框架 ExtJS可以称为第一代单页应用框架的典型,它封装了各种UI组件,用户主要使用JavaScript来完成整个前端部分,甚至包括布局。随着功能逐渐增加,ExtJS的体积也逐渐增大,即使用于内部系统的开发,有时候也显得笨重了,更不用说开发以上这类运行在互联网上的系统。 jQuery由于偏重DOM操作,它的插件体系又比较松散,所以比ExtJS这个体系更适合开发在公网运行的单页系统

构建单页Web应用

ε祈祈猫儿з 提交于 2020-01-04 03:14:14
摘自 前端农民工的博客 让我们先来看几个网站: coding teambition cloud9 注意这几个网站的相同点,那就是在浏览器中,做了原先“应当”在客户端做的事情。它们的界面切换非常流畅,响应很迅速,跟传统的网页明显不一样,它们是什么呢?这就是单页Web应用。 所谓单页应用,指的是在一个页面上集成多种功能,甚至整个系统就只有一个页面,所有的业务功能都是它的子模块,通过特定的方式挂接到主界面上。它是AJAX技术的进一步升华,把AJAX的无刷新机制发挥到极致,因此能造就与桌面程序媲美的流畅用户体验。 其实单页应用我们并不陌生,很多人写过ExtJS的项目,用它实现的系统,很天然的就已经是单页的了,也有人用jQuery或者其他框架实现过类似的东西。用各种JS框架,甚至不用框架,都是可以实现单页应用的,它只是一种理念。有些框架适用于开发这种系统,如果使用它们,可以得到很多便利。 开发框架 ExtJS可以称为第一代单页应用框架的典型,它封装了各种UI组件,用户主要使用JavaScript来完成整个前端部分,甚至包括布局。随着功能逐渐增加,ExtJS的体积也逐渐增大,即使用于内部系统的开发,有时候也显得笨重了,更不用说开发以上这类运行在互联网上的系统。 jQuery由于偏重DOM操作,它的插件体系又比较松散,所以比ExtJS这个体系更适合开发在公网运行的单页系统

构建单页Web应用

五迷三道 提交于 2020-01-04 03:11:55
文章摘自:https://github.com/xufei/blog/issues/5#issuecomment-136962500 单页应用:优点和缺点 http://stackoverflow.com/questions/21862054/single-page-application-advantages-and-disadvantages 单页应用是什么? 让我们先来看几个网站: coding teambition cloud9 注意这几个网站的相同点,那就是在浏览器中,做了原先“应当”在客户端做的事情。它们的界面切换非常流畅,响应很迅速,跟传统的网页明显不一样,它们是什么呢?这就是单页Web应用。 所谓单页应用,指的是在一个页面上集成多种功能,甚至整个系统就只有一个页面,所有的业务功能都是它的子模块,通过特定的方式挂接到主界面上。它是AJAX技术的进一步升华,把AJAX的无刷新机制发挥到极致,因此能造就与桌面程序媲美的流畅用户体验。 其实单页应用我们并不陌生,很多人写过ExtJS的项目,用它实现的系统,很天然的就已经是单页的了,也有人用jQuery或者其他框架实现过类似的东西。用各种JS框架,甚至不用框架,都是可以实现单页应用的,它只是一种理念。有些框架适用于开发这种系统,如果使用它们,可以得到很多便利。 开发框架 ExtJS可以称为第一代单页应用框架的典型

前端开发流程与组件化

假装没事ソ 提交于 2020-01-04 02:49:47
1组件化开发 组件分开发是非常重要的工程优手段。也是react开发必备技能。前端光有JS/CSS的模块化还是不够的。对于UI组件同样迫切的需求 前端组件化开发理念: 如上图所示这就是前端组件开发理念,下面我们来总结一下 1、页面上的每个独立的可视。可交互区域视为作一个组件; 2、每个组件对应一个工程目录,组件所需的各种资源(JS、Image、CSS)都在这个目录下就近维护; 3、由于组件具有独立性,因此组件与组件之间可以,自由组合; 4、页面只不过是组件的容器,负责组合组件形成功能完整的界面; 5、当不需要某个组件或者想要替换组件时,可以整个目录删除/替换 注:每二项中就近维护原则是工程化的体现。每个开发者都清楚知道,自己所开发维护的功能模块。因为代码必须存在于对应的组件目录,当前目录包函 CSS、JS、HTML、Image 根据上述描述我们将构造一个项目的基本流程 项目初期前端静态页面只包函CSS、HTML 目录名称:frontEnd less文件结构对应生成css文件 来源: https://www.cnblogs.com/pink-chen/p/11064733.html

前端模块化、工程化

我的梦境 提交于 2020-01-04 02:48:36
  先谈谈前端工程化,web前端越来越像“应用程序”,处理的业务繁杂,需要用的html,css,js等文件越来越多;因此不得不用工程化的思想去组织管理这些文件;当然关于前端工程化在细节上见仁见智;以下是个人的理解:   首先是业务需求文档的规范化;   其次是开发过程中的管理:版本控制(git/svn),js模块化(AMD,CMD,ES6),MVVM框架(react,vue)等   再其次是测试阶段:自动化测试js接口函数等(karma,mocha),数据mooc   最后是打包部署:构建工具进行丑化、合并等 构建工具grunt && gulp   Grunt 是最先流行起来的前端工程,其核心思想是基于配置的工作流模式,定义一个配置文件,声明工作流各个环节的相关配置,调用 grunt 就能完成打包编译;    Gulp 几乎取缔 Grunt ,成为前端的默认流程工具,其核心思想是基于内存的流的方式,提供高效的性能,极简的 API,定义不同的 task,然后将 task 串联起来;    Gulp入门教程 开发效率   通常的前端开发过程是,修改前端代码,调用命令编译代码,然后浏览器 F5 刷新。这个过程可以做到自动化,通过代码监控工具,指定要监控的目录和文件,如果对应文件有改变,调用编译工具编译源码,然后通过 livereload 自动刷新浏览器; 数据mock  

前端工程化

北战南征 提交于 2020-01-04 02:44:16
前端工程化 背景 前端工程化的概念近两年来被广泛的提及,究其原因,是前端工程师所负责的客户端功能逻辑在不断复杂化。PC网站、手机应用、桌面应用、微信小程序,前端开发的应用领域越来越广,前端工程师这个职位也不再是几年前被戏称的“切图仔”,在这种背景下,前端工程化应运而生。 聊到前端工程化,必然会有一些问题,本文会带着这几个问题去介绍前端工程化。 什么是前端工程化? 为什么要做前端工程化? 前端工程化怎么做? 现有的前端工程化产品? 什么是前端工程化? 要知道什么是前端工程化,先来看看什么是工程化,维基百科对工程化的定义: 工程学、工程科学或工学,是通过研究与实践应用数学、自然科学、社会学等基础学科的知识,来达到改良各行业中现有材料、建筑、机械、仪器、系统、化學和加工步骤的设计和应用方式一门学科。 实践与研究工程学的人叫做工程师。 在前端领域,工程化是根据业务特点,将前端开发流程规范化,标准化。前端工程化包括开发流程、技术选型、代码规范、构建发布、性能优化、前端监控等内容,主要目的在于制定标准和提升效率。 为什么要做前端工程化? 1990年诞生的网页脚本语言只能用于简单的表单校验,Web开发主要是后端开发。 2005年,AJAX异步请求技术改变了网页的交互模式,用户对网站的需求越来越多,客户端开发稍微重要了一些。 2008年,Google推出V8引擎之后,浏览器性能大大提升

前端工程化

核能气质少年 提交于 2020-01-04 02:43:28
前端工程化 gulp理解: 1、首先是初始化工程,命令行执行 npm init 然后设置工程名称、版本号、描述等一系列内容,执行完后,就会在项目生成一个package.js文件。 2、其次是搭建gulp环境,如果之前没有全局安装过gulp,应该先全局安装一次,命令行执行:npm install gulp --global。如果已经安装过,则不需要二次安装。只需要在当前项目中安装gulp依赖:npm install gulp --save-dev ( -D ),安装完后会在当前文件夹下生成一个node_modules文件夹 3、建立一个gulpfile.js文件,在里面做相关的配置,如导入依赖模块,建立任务等。如果依赖模块没有安装,则需要提前安装依赖模块。 4、建立任务用到4个api功能gulp.task()、gulp.src()、gulp.dest()、gulp.watch()和.pipe()方法 >在过去前端开发一直没有完善的一些代码处理等工具来辅助开发,而nodejs火起来之后,很多基于node环境的工具诞生之后对前端开发造成了冲击,慢慢的,使用这些工具来完成项目的搭建和开发这样的方式被成为前端工程化 为什么使用工程化来开发项目 >现在的项目不管从规模还是复杂度上都有很大的提高,所以,如何能快速的搭建环境,以及高效的代码管理,后期处理成为了衡量前端工程师技术的一个标准

前端工程化浅析

自闭症网瘾萝莉.ら 提交于 2020-01-04 02:42:29
在过去前端开发一直没有完善的一些代码处理等工具来富足开发,而nodejs火起来之后,很多基于node环境的工具诞生之后对前端开发造成了冲击,慢慢的,使用这些工具来完成项目的搭建和开发这样的方式被称为前端工程化。 使用工程化开发项目原因: 现在的项目不论是规模还是复杂度都有很大程度提高,所以如何快速搭建环境以及搞笑的代码管理,后期处理成为了衡量前端工程师技术的标准 工程化帮我们: 构造环境变得简单、自动化,代码的压缩合并,模块化,抽离都能一步完成,减少了后期处理成本。 现有的工程化工具: grunt、gulp是自动化构建工具,webpack是模块化打包工具,bower、npm是包管理工具 gulp使用方式: 基于流的自动化构建工具。 因为gulp运行在nodejs中,所以遵循commonjs模块化规范,gulp使用通过创建和执行任务来完成 关键方法: 1.gulp.task()创建任务 2.gulp.src()查找资源文件 3.gulp.desk()输出文件 4.gulp.watch()监听文件内容变化 5. .pipe()可以对文件进行处理 gulp只提供查找、监听文件,处理后输出文件,但是如何处理都不属于gulp的功能范围 工程化的实现: 1、建立项目目录 2、在项目中执行npm init应该有一个package.json文件,标注项目相关信息。 3、选择gulp + gulp

前端工程化讲解

佐手、 提交于 2020-01-04 02:41:51
一、什么叫做前端工程化 在过去前端开发一直没有完善的一些代码处理等工具来辅助开发,而nodejs火起来之后,很多基于node环境的工具诞生之后对前端开发造成了冲击,慢慢的,使用这些工具来完成项目的搭建和开发这样的方式被成为前端工程化 二、为什么使用工程化来开发项目 现在的项目不管从规模还是复杂度上都有很大的提高,所以,如何能快速的搭建环境,以及高效的代码管理,后期处理成为了衡量前端工程师技术的一个标准 三、工程化之后能帮助我们做到什么? 构建环境变得简单和自动化,代码的压缩合并,模块化,抽离都能一步完成,减少了后期处理成本。 四、现有的工程化工具 目前市场上有很多自动化工具供我们选择: grunt、gulp都是自动化构建工具,webpack是模块化打包工具,bower、npm是包管理工具 五、Gulp的使用方式 gulp是一款目前比较流行的基于流的自动化构建工具,因为gulp是运行在nodejs中,所以说也遵循 CommonJS模块化规范,gulp的使用就是通过创建任务和执行任 务来完成 关键方法: 1. gulp.task()创建任务 2. gulp.src()查找资源文件 3. gulp.dest()输出文件 4. gulp.watch()监听文件内容变化 5. .pipe()可以对文件进行处理 gulp提供的只是查找文件,监听文件,处理后输出文件

Fis3前端工程化之项目实战

梦想的初衷 提交于 2020-01-04 02:40:49
Fis3项目 项目目录结构: E:. │ .gitignore │ fis-conf.js │ index.html │ package.json │ README.md │ ├─material │ └─resource ├─css ├─images └─js ├─lab │ │ │ └─until └─ui 项目要求: 1.雪碧图 2.代码模块化 3.预处理 4.md5戳 5.压缩资源 雪碧图 启用雪碧图插件,fis3已内置 fis.match('::package', { spriter: fis.plugin('csssprites') }) 设置雪碧图的合并格式 fis.config.set('settings.spriter.csssprites', { margin: 10, //图之间的边距 layout: 'matrix' //使用矩阵排列方式,默认为线性`linear` }); 预处理 因为使用的是less,所以需要预处理less文件 通过 fis-parser-less 插件可以处理 安装 npm install -g fis-parser-less fis.match('*.less', { parser: fis.plugin('less'), rExt: '.css' }) 代码模块化 Mod.js 我这里使用的 Mode.js