前端学习

一、html5 && css3

  1. html5新增元素和标签结构
  2. html5新增特性API 
  3. css3新特性/动画
  4. CSS 基础样式、规范总结
  5. CSS reset
  6. CSS技术交流
  7. bootstrap框架熟悉
  8. html5移动Web开发,跨屏、Retina适配等等
  9. Web Components标准(Web组件最初的目的是使开发人员拥有扩展浏览器标签的能力,可以自由的进行定制组件)
  10. 兼容性查询
  11. 设计感的培养

https://dribbble.com/shots

https://webgradients.com/  (色彩)

http://www.userinterface.com.cn/ (设计网站导航)

http://www.shejidaren.com/category/design-tools (设计网站&工具汇总)

二、javascript

1. ES6(ECMAScript 6)

  ①   ECMAScript是JavaScript语言的国际标准,JavaScript是ECMAScript的实现。编程语言JavaScript是ECMAScript的实现和扩展,由ECMA(一个类似W3C的标准组织)参与进行标准化。

  ECMAScript与JavaScript的关系

  ECMAScript 是一种开放的、国际上广为接受的脚本语言规范。 它本身并不是一种脚本语言。正如在 Web 应用程序中执行有用操作的 bean 集合(例如,NetscapeAWT)是 Sun 的 JavaBean 规范的一种实现一样,JavaScript 是 ECMAScript 规范的一种实现。

JScript和JavaScript

  JavaScript: Netscape公司

  Jscript: Microsoft公司

  Jscript是微软版的JavaScript,与JavaScript基本一致.   如果你这样写:<script> </script>   不声明脚本版本的话,在IE里默认用Jscript,在Netscape里默认用JavaScript   脚本语言本身和浏览器版本无关,JavaScript就是JavaScript,永远是Netscape公司的JavaScript,永远首先默认支持 NS;JScript永远就是MS的JScript,IE永远默认首先支持JScript,其实只是MS和NS之间的积怨罢了,于我们这些使用者本无区别......

         ② ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准

2. React    

虚拟DOM

react 技术栈

一看就懂的ReactJs入门教程

  ReactJS是基于组件化的开发

  在Web开发中,我们总需要将变化的数据实时反应到UI上   React是Facebook开源的JavaScript库,用于构建UI

  • React不是一个完整的MVC框架,最多可以认为是MVC中的V(View),甚至React并不非常认可MVC开发模式;
  • React的服务器端Render能力只能算是一个锦上添花的功能,并不是其核心出发点,事实上React官方站点几乎没有提及其在服务器端的应用;
  • 有人拿React和Web Component相提并论,但两者并不是完全的竞争关系,你完全可以用React去开发一个真正的Web Component;
  • React不是一个新的模板语言,JSX只是一个表象,没有JSX的React也能工作。

Virtual DOM

  Virtual DOM并没有完全实现DOM,Virtual DOM最主要的还是保留了Element之间的层次关系和一些基本属性。

  基于React进行开发时所有的DOM构造都是通过虚拟DOM进行,每当数据变化时,React都会重新构建整个DOM树,然后React将当前整个DOM树和上一次的DOM树进行对比,得到DOM结构的区别,然后仅仅将需要变化的部分进行实际的浏览器DOM更新。而且React能够批处理虚拟DOM的刷新,在一个事件循环(Event Loop)内的两次数据变化会被合并,例如你连续的先将节点内容从A变成B,然后又从B变成A,React会认为UI不发生任何变化。尽管每一次都需要构造完整的虚拟DOM树,但是因为虚拟DOM是内存数据,性能是极高的,而对实际DOM进行操作的仅仅是Diff部分,因而能达到提高性能的目的。这样,在保证性能的同时,开发者将不再需要关注某个数据的变化如何更新到一个或多个具体的DOM元素,而只需要关心在任意一个数据状态下,整个界面是如何Render的

  React.render 是 React 的最基本方法,用于将模板转为 HTML 语言,并插入指定的 DOM 节点。

这里需要注意的是,react并不依赖jQuery,当然我们可以使用jQuery,但是render里面第二个参数必须使用JavaScript原生的getElementByID方法,不能使用jQuery来选取DOM节点。

  所有html结构,都可以用js dom来构造,而且能将构造的步骤封装起来,做到「数据-dom结构」的映射。

  将普通的DOM以数据结构的形式展现出来

自我认知:

  react主要用于构建UI,可用react来构建component,开发时所有的dom构造都基于virtual dom,所谓virtual dom 指的是由js dom 而且能够封装起来形成【数据-dom】结构的映射,具体来说就是一个数据结构,利用react的render将构造好的数据结构插入界面,构造的过程就是根据所提供的数据与要求,设置数据结构中的参数,要怎么做就做成什么。将界面与业务隔离,将重心转移到业务。

2. Angular2/前端MVC、MVVM之类的设计模式

AngularJS

http://www.cnblogs.com/xing901022/p/4280299.html

AngularJS开发指南33:单元测试

AngularJS:

  AngularJs相对于其他的框架来说,有一下的特性:

  1. MVVM
  2. 模块化
  3. 自动化双向数据绑定
  4. 语义化标签
  5. 依赖注入

  包括的主要有

  1 angularjs模板

    视图和模板

  2 迭代器过滤

    控制器

  3 双向绑定

  输入框的任何更改会立即反映到模型变量(一个方向),模型变量的任何更改都会立即反映到问候语文本中(另一方向)。

   AngularJS是为了克服HTML在构建应用上的不足而设计的。HTML是一门很好的为静态文本展示设计的声明式语言,但要构建WEB应用的话它就显得乏力了。

  AngularJS应用的解析

  AngularJS应用程序的三个组成部分,及它们如何映射到模型-视图-控制器设计模式:

  • 模板(Templates)

  模板是您用HTML和CSS编写的文件,展现应用的视图。 您可给HTML添加新的元素、属性标记,作为AngularJS编译器的指令。 AngularJS编译器是完全可扩展的,这意味着通过AngularJS您可以在HTML中构建您自己的HTML标记!

  • 应用程序逻辑(Logic)和行为(Behavior)

  应用程序逻辑和行为是您用JavaScript定义的控制器。AngularJS与标准AJAX应用程序不同,您不需要另外编写侦听器或DOM控制器,因为它们已经内置到AngularJS中了。这些功能使您的应用程序逻辑很容易编写、测试、维护和理解。

  • 模型数据(Data)

  模型是从AngularJS作用域对象的属性引申的。模型中的数据可能是Javascript对象、数组或基本类型,这都不重要,重要的是,他们都属于AngularJS作用域对象。

  AngularJS通过作用域来保持数据模型与视图界面UI的双向同步。一旦模型状态发生改变,AngularJS会立即刷新反映在视图界面中,反之亦然。

  此外,AngularJS还提供了一些非常有用的服务特性:

  1. 底层服务包括依赖注入,XHR、缓存、URL路由和浏览器抽象服务。
  2. 您还可以扩展和添加自己特定的应用服务。
  3. 这些服务可以让您非常方便的编写WEB应用。

angular与react之对比

  如果应用时常要处理大量的动态数据集,并以相对简便和高性能的方式对大型数据表进行显示和变更,React是相当不错的选择。但是React不像AngularJS那样包含完整的功能,举例来说,React没有负责数据展现的控制器

  虽然Angular的数据的表达能够非常紧凑, 但是渲染大型数据集依旧被证明是一个痛点. 由于双向数据绑定需要监听每一个可变元素, 数据量变大就会带来显著的性能问题. React, 在另一方面, 使用虚拟DOM来跟踪元素的变化. 当检测到变化时, React会构建一个针对DOM变化的补丁, 然后应用这些补丁. 由于不必在每个元素每次变化时重新渲染整个巨大的table, React相对于其他JavaScript框架有显著的性能提升.

性能

  虽然Angular的数据的表达能够非常紧凑, 但是渲染大型数据集依旧被证明是一个痛点. 由于双向数据绑定需要监听每一个可变元素, 数据量变大就会带来显著的性能问题. React, 在另一方面, 使用虚拟DOM来跟踪元素的变化. 当检测到变化时, React会构建一个针对DOM变化的补丁, 然后应用这些补丁. 由于不必在每个元素每次变化时重新渲染整个巨大的table, React相对于其他JavaScript框架有显著的性能提升.  

3. Node.js

  熟悉,学习Node的运行方式以及主流框架的设计模式,有助于深入理解Javascript

4. 了解MongoDB文档数据库

5. Node.js异步编程的流程控制

  有助于深入理解Javascript异步编程

三、 前端工程化

1.gulp/webpack等前端工具

2.前端模块化、组件化、可测试化、性能优化、可伸缩性(scalable)

3.前端自动化测试,(如PhantomJS之类的工具)

四、前瞻

1.ES7(ECMAScript 7)

2.html5新特性  webGL  openGL

3.React/Web Components

五、学习资源

1.《Javascript高级程序设计》

2.《高性能Javascript》

3.《深入浅出Node.js》

4.Google/Stack Overflow/Github

5.关注国内前端牛人的博客或者Github动态

6.Mozilla开发者网站,Web标准、Api等等文档比较详细和权威 https://developer.mozilla.org/zh-CN/

7.慕课网,有很多质量不错的前端课程

8.前端技术发展迭代非常快,需要及时关注新动向

9.选择一个热门的前端开源项目,深入研究其用法和源代码,学习其设计思想,逐步提升自己的前端架构设计能力

10.关注大型技术会议的技术分享,关注大公司的技术团队

百度web研发部

淘宝前端团队(FED)

11.优秀总结

前端小白到大神,不可不收藏的网站合集

前端工程师必备:细数那些好用的网站开发工具

前端技能汇总

六、学习顺序

1.html5新元素、标签、标准、常用的新特性Api

2.css3的使用

3.bootstrap,移动Web、跨浏览器开发

4.react

5.Node.js

持续更新······

如有其他资源或建议,欢迎留言交流~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SEO

「知识」如何让蜘蛛与用户了解我们的内容?

24350
来自专栏前端杂货铺

关于首屏时间采集自动化的解决方案

关于首屏 首屏时间是指从转向该页面到屏幕中该页面所有内容都可见时的时间。已经有太多的关于首屏时间的计算,在本文中并不重复阐述这些已经被提出或者实现的方案,而旨...

66570
来自专栏向治洪

ReactJs和React Native的那些事

介绍  1,React Js的目的 是为了使前端的V层更具组件化,能更好的复用,它能够使用简单的html标签创建更多的自定义组件标签,内部绑定事件,同时可以让你...

212100
来自专栏WeTest质量开放平台团队的专栏

Pluto - iOS 上一个高性能的排版渲染引擎

原文链接:http://wetest.qq.com/lab/view/369.html

59060
来自专栏程序员互动联盟

你所不知道的html5与html中的那些事(三)

文章简介: 关于html5相信大家早已经耳熟能详,但是他真正的意义在具体的开发中会有什么作用呢?相对于html,他又有怎样的新的定义与新理念在里面呢?为什么...

31160
来自专栏编程微刊

进阶攻略|最全的前端开源JS框架和库

34470
来自专栏速成应用小程序开发平台

新手教程--手把手教你从零开始制作一款电商必备的商城小程序

近年来,在电商、新零售趋势的影响下,实体零售商也都在谋求自身的渠道变革,完善消费体验。如今微信已有超过十亿的用户,市场巨大,而微信小程序的开通不仅能够降低品牌...

29120
来自专栏贺贺的前端工程师之路

Angular2、Ionic、TypeScript、es6的关系?

其实对于这3个东西来说,我根本搞不清楚他们之间的关系,突然之间意识到,自己不能再这样搞不清楚关系的就学下去。这样就像angular1似的,自己还是什么都不会,a...

13530
来自专栏bboysoul

使用ArchiSteamFarm在树莓派挂卡

挂卡,我也是今天知道这个词语,意思就是steam中某些游戏有集换式卡牌,集齐能合成徽章有经验,玩游戏到一定时间可以获得总数一半数量的卡,挂卡就是挂游戏时间获得这...

22040
来自专栏互联网杂技

react+redux+webpack教程1

经历了EXT、YUI时代,又经历了Angular时代,我们正在步入React时代。 前端开发框架凭借JS极其灵活强大的特性模样越来越“怪异”,正是这怪异让我们对...

35150

扫码关注云+社区

领取腾讯云代金券