所在的位置: 前端 >> 前端前景 >> 前端知识体系

前端知识体系

白癜风早期有哪些症状 http://news.39.net/bjzkhbzy/170214/5221529.html

一、前端三要素

HTML(结构):超文本标记语言(HyperTextMarkupLanguage),决定网页的结构和内容CSS(表现):层叠样式表(CascadingStyleSheets),设定网页的表现样式JavaScript(行为):是一种弱类型脚本语言,其源代码不需经过编译,而是由浏览器解释运行,用于控制网页的行为结构层(HTML)

表现层(CSS)

CSS层叠样式表是一门标记语言,而不是编程语言,因此不可以自定义变量,不可以引用等,换句话说就是不具备任何语法支持,它的主要缺陷如下:

语法不够强大,比如无法嵌套书写,导致模块化开发中需要书写很多重复的选择器没有变量和合理的样式复用机制,使得逻辑上相关的属性值必须以字面的形式重复输出,导致难以维护这就导致了我们在工作中无端增加了许多工作量。为了解决这个问题,前端开发人员会使用一种称之为的工具,提供CSS缺失的样式层复用机制,减少冗余代码,提高样式代码的可维护性。大大提高了前端在样式上的开发效率

什么是CSS预处理器

CSS预处理器定义了一种新的语言,其基本思想是用一种专门的编程语言,为CSS增加了一些编程的特性,将CSS作为目标生成文件,然后开发者就只要使用这种语言进行CSS的编码工作。转化成通俗易懂的话来说就是用一种专门的编程语言,进行Web页面样式设计,再通过编译器转化为正常的CSS文件,以供项目使用

常用的CSS预处理器有哪些

SASS:基于Ruby,通过服务端处理,功能强大,解析效率高。需要学习Ruby语言,上手难度高于LESSLESS:基于NodeJS,通过客户端处理,使用简单。功能比SASS简单,解析效率也低于SASS,但在实际开发中足够了,所以我们后台人员如果需要的话,建议使用LESS行为层(JavaScript)

JavaScript是一门弱类型脚本语言,其源代码在发往客户端运行之前不需要经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行

Native原生JS开发原生JS开发,也就是让我们按照标准的开发方式,简称是ES,特点是大部分浏览器都支持。截止到目前,ES3标准已发布如下版本:

ES3ES4(内部,未正式发布)ES5(全浏览器支持)ES6(常用,当前主流版本)ES7ES8ES9(草案阶段)区别就是逐步增加新特性浏览器不支持新特性是前端发展的一个很大阻碍,需要进行额外的操作,把ES6写完的代码打包编译成ES5,这样才能让全浏览器支持

TypeScript微软的标准

TypeScript是一种由微软开发的自由和开源的编程语言。它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。由安德斯·海尔斯伯格(C#、Delphi、TypeScript之父;.NET创立者)主导

该语言的特点就是除了具备的ES的特性之外还纳入了许多不在标准范围内的新特性,所以会导致很多浏览器不能直接支持TypeScript语法,需要编译后(编译成JS)才能被浏览器正确执行

JavaScript框架

JQuery:大家熟知的JavaScript框架,优点是简化了DOM操作,缺点是DOM(W3C文档对象模型,是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式)操作太频繁,影响前端性能;在前端眼里使用它仅仅是为了兼容IE6、7、8;Angular:Google收购的前端框架,由一群Java程序员开发,其特点是将后台的MVC模式搬到了前端并增加了模块化开发的理念,与微软合作,采用TypeScript语法开发;对后台程序员友好,对前端程序员不太友好;最大的缺点是版本迭代不合理(如:1代-2代,除了名字,基本就是两个东西);React:Facebook出品,一款高性能的JS前端框架;特点是提出了新概念用于减少真实DOM操作,在内存中模拟DOM操作,有效的提升了前端渲染效率;缺点是使用复杂,因为需要额外学习一门语言;Vue:一款渐进式(等用到一个新功能再学习这个功能)JavaScript框架,所谓渐进式就是逐步实现新特性的意思,如实现模块化开发、路由、状态管理等新特性。其特点是综合了Angular(模块化)和React(虚拟DOM)的优点;Axios:前端通信框架;因为Vue的边界很明确,就是为了处理DOM,所以并不具备通信能力,此时就需要额外使用一个通信框架与服务器交互;当然也可以直接选择使用jQuery提供的AJAX通信UI框架

Ant-Design:阿里巴巴出品,基于React的UI框架ElementUI:饿了么出品,基于Vue的UI框架(主流)Boostrap:Twitter推出的一个用于前端开发的开源工具包AmazeUI:一款HTML5跨屏前端框架JavaScript构建工具

Babel:JS编译工具,主要用于浏览器不支持的ES新特性,比如用于编译TypeScriptWebPack:模块化打包器,主要作用是打包、压缩、合并及按序加载二、前后端分离的演变史

1.后端为主的MVC时代

为了降低开发的复杂度,以后端为出发点,比如:Struts2、SpringMVC等框架的使用,就是后端的MVC时代;

以SpringMVC流程为例(注意区分:MVC是模式,SpringMVC是框架):

发起请求到前端控制器(DispatcherServlet)前端控制器请求HandlerMapping查找Handler,可以根据xml配置、注解进行查找处理器映射器HandlerMapping向前端控制器返回Handler前端控制器调用处理器适配器去执行Handler处理器适配器去执行HandlerHandler执行完成给适配器返回ModelAndView处理器适配器向前端控制器返回ModelAndView,ModelAndView是SpringMVC框架的一个底层对象,包括Model和View前端控制器请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图(JSP)视图解析器向前端控制器返回View前端控制器进行视图渲染,视图渲染将模型数据(在ModelAndView对象中)填充到request域前端控制器向用户响应结果优点MVC是一个非常好的协作模式,能够有效降低代码的耦合度,从架构上能够让开发者明白代码应该写在哪里。为了让View更纯粹,还可以使用Thymeleaf、Freemarker等模板引擎,使模板里无法写入Java代码,让前后端分工更加清晰

缺点

前端开发重度依赖开发环境,开发效率低,这种架构下,前后端协作有两种模式:第一种是前端写DEMO,写好后,让后端去套模板。好处是DEMO可以本地开发,很高效。不足是还需要后端套模板,有可能套错,套完后还需要前端确定,来回沟通调整的成本比较大另一种协作模式是前端负责浏览器端的所有开发和服务器端的View层模板开发。好处是UI相关的代码都是前端去写就好,后端不用太


转载请注明:http://www.aierlanlan.com/cyrz/1048.html