Skip to content
This repository has been archived by the owner on Nov 20, 2024. It is now read-only.

Latest commit

 

History

History
182 lines (124 loc) · 3.9 KB

前端技术.md

File metadata and controls

182 lines (124 loc) · 3.9 KB

前端技术

大家学到现在应该也已经对前端的HTML,CSS,JS有个基本的了解了。 前端开发者是非常需要更近时代的。 现在给大家补点前端现状。

此文引用了一些包的官方介绍。

包管理器

  • Bower
Twitter 出品,前端包管理工具。

Bower is a package manager for the web.
It offers a generic, unopinionated solution to the problem of front-end package management,
while exposing the package dependency model via
an API that can be consumed by a more opinionated build stack.
There are no system wide dependencies,
no dependencies are shared between different apps, and the dependency tree is flat.

Bower runs over Git, and is package-agnostic.
A packaged component can be made up of any type of asset,
and use any type of transport (e.g., AMD, CommonJS, etc.).

渲染模板引擎

Frontend

如果你试过在 Javascript 里头写 HTML,一定觉得非常难受, 因为变量嵌在字符串中需要写很多很多引号加号。 当然若是用 CoffeeScript的话会好些。 下面介绍一写渲染模板引擎。

  • mustache

https://github.com/janl/mustache.js

  • Hogan.js

JavaScript templating from Twitter.

http://twitter.github.io/hogan.js/

NodeJS

  • Jade

Jade is a clean, whitespace sensitive syntax for writing html. Here is a simple example:

doctype 5
html(lang="en")
  head
    title= pageTitle
    script(type='text/javascript').
      if (foo) bar(1 + 5)
  body
    h1 Jade - node template engine
    #container.col
      if youAreUsingJade
        p You are amazing
      else
        p Get on it!
      p.
        Jade is a terse and simple templating language with a
        strong focus on performance and powerful features.

becomes

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Jade</title>
    <script type="text/javascript">
      if (foo) bar(1 + 5)
    </script>
  </head>
  <body>
    <h1>Jade - node template engine</h1>
    <div id="container" class="col">
      <p>You are amazing</p>
      <p>Jade is a terse and simple templating language with a strong focus on performance and powerful features.</p>
    </div>
  </body>
</html>
  • ejs
<% if (user) { %>
    <h2><%= user.name %></h2>
<% } %>
  • swig
<h1>{{ pagename|title }}</h1>
<ul>
{% for author in authors %}
    <li{% if loop.first %} class="first"{% endif %}>{{ author }}</li>
{% endfor %}
</ul>

CSS?

求是潮目前用的比较多的 Less,不过我个人觉得 Stylus 也不错。具体用什么由项目决定。

  • Less

http://www.lesscss.net/article/document.html

  • Stylus

https://github.com/learnboost/stylus

  • Sass

http://sass-lang.com/documentation/file.SASS_REFERENCE.html#css_extensions

Javascript?

  • CoffeeScript

CoffeeScript非常优雅,我用CoffeeScript最突出的感受就是, 简单,解决了 Javascript 在常见任务中会碰到的很多不得不 dirty 的地方。 但是记住 CoffeeScript == Javascript。 学习 CoffeeScript,可以通过 compile 成 Javascript,看看具体都是如何实现的, 对 Javascript 功力的长进也是非常有裨益的。

http://coffeescript.org/

  • TypeScript

与 CoffeeScript 不同,TypeScript是一种 Javascript 的超集。TypeScript 是Microsoft公司开发的开源语言。

前端框架

  • Backbone

  • Angular

单元测试

  • Grunt

http://gruntjs.com/

辅助工具

  • RequireJS

http://requirejs.org/docs/api.html

  • SeaJS

SeaJS 比起 RequireJS 要简单上一些,并且非常符合 NodeJS 的模块感觉。 国内很多项目都用 SeaJS。

http://seajs.org/docs/

  • prototype.js

这个问题值得一看,http://stackoverflow.com/questions/2644556/prototype-vs-jquery-strengths-and-weaknesses

  • underscore

采用类似 jQuery 的思想,只操作了 window._ , 非常有用的库,提供了很多有用的函数,建议大家一看。

作业

了解以上种种东西,然后寻找一些类似的有趣的东西