美文网首页
前端知识体系

前端知识体系

作者: 索伦x | 来源:发表于2019-04-11 19:24 被阅读0次

    前端三要素

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

    结构层(HTML5)

    html全称为HyperText Markup Language,中文直意为“超级文本标记语言”而那个5对应的是它的重大修改次数,自然你就明白了,5就是第五修改,第五代更新!

    那么与H4对比H5有哪些好处?
    1. 通讯能力增强
      例如: WebSocket长连接,支持后端推送
    2. 性能得到了提示
      WebWorker -- 实现了网页多线程加载,不会阻塞UI主线程
    3. 前端存储能力得到提升
      cookie vs WebStorage:2K数据 - 5M数据
    4. 增加了一系列新功能
      拖放API: 例如:dragstart:拖动开始\drag:拖动中\dragend:拖动结束
      地理定位: 通过浏览器获取当前用户的所在地理坐标,以实现“LBS服务”(Location Based Service),如实时导航、周边推荐。
      图片处理加强:例如:SVG绘图(矢量图),Canvas绘图(位图)
      视频和音频: 增加了视频及音频的标签
      增强型表单:新的表单元素、表单元素的新属性
    5. 新的语义标签:
      <article>
      <aside>
      <details>
      <figcaption>
      <figure>
      <footer>
      <header>
      <main>
      <mark>
      <nav>
      <section>
      <summary>
      <time>

    表现层(CSS3)

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

    • 语法不够强大,比如无法嵌套书写,导致模块化开发中需要书写很多重复的选择器;
    • 没有变量和合理的样式复用机制,使得逻辑上相关的属性值必须以字面量的形式重复输出,导致难以维护;

    这就导致了我们在工作中无端增加了许多工作量。为了解决这个问题,前端开发人员会使用一种称之为 【CSS 预处理器】 的工具,提供 CSS 缺失的样式层复用机制、减少冗余代码,提高样式代码的可维护性。大大提高了前端在样式上的开发效率。

    什么是 CSS 预处理器

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

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

    Less示例

    /* Mixin */
    @base: #663333;
    @complement1: spin(@base, 180); //旋转180度
    @complement2: darken(spin(@base, 180), 5%);  //变暗5%
    @lighten1: lighten(@base, 15%);  //变亮15%
    @lighten2: lighten(@base, 30%);  //变亮30%
     
    /* Implementation */
    .one   {color: @base;}
    .two   {color: @complement1;}
    .three {color: @complement2;}
    .four  {color: @lighten1;}
    .five  {color: @lighten2;}
    
    

    前端代码构建工具

    CSS3新特性

    1.媒体查询(@media),多栏布局(flex)
    2.css动画:取代动画图片、Flash 动画以及 JavaScript,主要是transform及animation
    太阳9大行星示例
    3.CSS3选择器,例如:p:nth-child(3){} //父元素的第3个子元素
    4.文字特效,例如反射效果

    <style>
    .classReflect{ 
    -webkit-box-reflect: below 5px 
    -webkit-gradient(linear, left top, left bottom, from(transparent), 
         to(rgba(255, 255, 255, 0.51))); 
    }   
    </style>
    <p class="classReflect">WEB2.0</p>
    

    行为层(JavaScript)

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

    ES6

    原生 JS ,也就是让我们按照 【ECMAScript】 标准的开发方式,简称是 ES,特点是所有浏览器都支持。

    • ES5(全浏览器支持)
    • ES6(常用,当前主流版本)

    区别就是逐步增加新特性。

    ES6新特性

    详情请点击: ES6新特性

    主流JavaScript 框架
    • jQuery:大家熟知的 JavaScript 框架,优点是简化了 DOM 操作,缺点是 DOM 操作太频繁,影响前端性能;在前端眼里使用它仅仅是为了兼容 IE6、7、8;
    • Angular:Google 收购的前端框架,由一群 Java 程序员开发,其特点是将后台的 MVC 模式搬到了前端并增加了模块化开发的理念,与微软合作,采用 TypeScript 语法开发;对后台程序员友好,对前端程序员不太友好;最大的缺点是版本迭代不合理(如:1代 -> 2代,除了名字,基本就是两个东西;截止发表博客时已推出了 Angular6)
    • React:Facebook 出品,一款高性能的 JS 前端框架;特点是提出了新概念 【虚拟 DOM】 用于减少真实 DOM 操作,在内存中模拟 DOM 操作,有效的提升了前端渲染效率;缺点是使用复杂,因为需要额外学习一门 【JSX】 语言;
    • Vue:一款渐进式 JavaScript 框架,所谓渐进式就是逐步实现新特性的意思,如实现模块化开发、路由、状态管理等新特性。其特点是综合了 Angular(模块化) 和 React(虚拟 DOM) 的优点;
    • Axios:前端通信框架;因为 Vue 的边界很明确,就是为了处理 DOM,所以并不具备通信能力,此时就需要额外使用一个通信框架与服务器交互;当然也可以直接选择使用 jQuery 提供的 AJAX 通信功能;
    UI 框架
    • Ant-Design:阿里巴巴出品,基于 React 的 UI 框架
    • ElementUI:饿了么出品,基于 Vue 的 UI 框架
    • Bootstrap:Twitter 推出的一个用于前端开发的开源工具包
    • AmazeUI:又叫“妹子 UI”,一款 HTML5 跨屏前端框架
    JavaScript 构建工具
    • Babel:JS 编译工具,主要用于浏览器不支持的 ES 新特性,比如用于编译 TypeScript
    • WebPack:模块打包器,主要作用是打包、压缩、合并及按序加载

    Nodejs后端技术

    前端人员为了方便开发也需要掌握一定的后端技术,但我们 Java 后台人员知道后台知识体系极其庞大复杂,所以为了方便前端人员开发后台应用,就出现了 NodeJS 这样的技术。

    NodeJS 的作者已经声称放弃 NodeJS(说是架构做的不好再加上笨重的 node_modules,可能让作者不爽了吧),开始开发全新架构的 Deno

    既然是后台技术,那肯定也需要框架和项目管理工具,NodeJS 框架及项目管理工具如下:

    • Express:NodeJS 框架
    • Koa:Express 简化版
    • NPM:项目综合管理工具,类似于 Maven
    • YARN:NPM 的替代方案,类似于 Maven 和 Gradle 的关系

    附A:当前主流前端框架

    Vue.js

    iView

    iview 是一个强大的基于 Vue 的 UI 库,有很多实用的基础组件比 elementui 的组件更丰富,主要服务于 PC 界面的中后台产品。使用单文件的 Vue 组件化开发模式 基于 npm + webpack + babel 开发,支持 ES2015 高质量、功能丰富 友好的 API ,自由灵活地使用空间。

    备注:属于前端主流框架,选型时可考虑使用,主要特点是移动端支持较多

    ElementUI

    Element 是饿了么前端开源维护的 Vue UI 组件库,组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。主要用于开发 PC 端的页面,是一个质量比较高的 Vue UI 组件库。

    备注:属于前端主流框架,选型时可考虑使用,主要特点是桌面端支持较多

    ICE

    飞冰是阿里巴巴团队基于 React/Angular/Vue 的中后台应用解决方案,在阿里巴巴内部,已经有 270 多个来自几乎所有 BU 的项目在使用。飞冰包含了一条从设计端到开发端的完整链路,帮助用户快速搭建属于自己的中后台应用。

    备注:主要组件还是以 React 为主,截止 2019 年 02 月 17 日更新博客前对 Vue 的支持还不太完善,目前尚处于观望阶段

    VantUI

    Vant UI 是有赞前端团队基于有赞统一的规范实现的 Vue 组件库,提供了一整套 UI 基础组件和业务组件。通过 Vant,可以快速搭建出风格统一的页面,提升开发效率。

    AtUI

    at-ui 是一款基于 Vue 2.x 的前端 UI 组件库,主要用于快速开发 PC 网站产品。 它提供了一套 npm + webpack + babel 前端开发工作流程,CSS 样式独立,即使采用不同的框架实现都能保持统一的 UI 风格。

    CubeUI

    cube-ui 是滴滴团队开发的基于 Vue.js 实现的精致移动端组件库。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。

    混合开发

    Flutter

    Flutter 是谷歌的移动端 UI 框架,可在极短的时间内构建 Android 和 iOS 上高质量的原生级应用。Flutter 可与现有代码一起工作, 它被世界各地的开发者和组织使用, 并且 Flutter 是免费和开源的。

    备注:Google 出品,主要特点是快速构建原生 APP 应用程序,如做混合应用该框架为必选框架

    Ionic

    Ionic 既是一个 CSS 框架也是一个 Javascript UI 库,Ionic 是目前最有潜力的一款 HTML5 手机应用开发框架。通过 SASS 构建应用程序,它提供了很多 UI 组件来帮助开发者开发强大的应用。它使用 JavaScript MVVM 框架和 AngularJS/Vue 来增强应用。提供数据的双向绑定,使用它成为 Web 和移动开发者的共同选择。

    附B:其他

    了解前后分离的演变史
    了解前端 MVVM 模式

    相关文章

      网友评论

          本文标题:前端知识体系

          本文链接:https://www.haomeiwen.com/subject/wqzwiqtx.html