zoukankan      html  css  js  c++  java
  • angular学习笔记

    时隔一年之后重新学习angularJS,感慨良多。

    去年刚刚接触web编程的时候,朋友告诉我angularJS很好用,于是在仅仅了解HTML和css开始学习angularJS,困难程度可想而之,而且并不明白其价值,武断的认为通过服务端可以不需要angular之类的工具解决所有问题。一年之后,对js的语法相对熟悉,尝试过自己写一个网站之后,不但非常快速的掌握了angularJS的大致内容,而且明白angular的价值。由此也可以说明只有在大量的实践之后,自身抽象问题的能力才会提高。

    angularJS提出了一些概念:模块(module),服务(service),controllor,routeProvider,filter等概念。那么每个概念是什么意思呢?概念之间又有什么关系呢?

    module可以理解成一个完整的程序,它有属于自己的controllor,routeProvider,filter,依赖的service和module等。

    service可以理解成一个全局的库函数,可以自定义,angularJS可以自动寻找依赖。很多时候通过$http或者封装$http服务向后台请求数据。

    controllor可以用来操作数据,由用户自己定义。

    routeProvider和django中的urlpattens做了相同的工作,即根据http请求的不同函数向用户展示不同的页面。

    filter可以用来筛选一些数据,和字面意思一样。

    通常,我们自定义一个自己的模块,通过routeProvider定义每一个请求所对应的页面的模版和controllor,每一个controllor为了减少代码重复,使逻辑更清楚,可以选择性使用service。在需要对数据做过滤的时候使用filter,这样大致构成了一个简单的基于angular的应用。

    angular的好处:

    对于用户来说,抽象程度很高,实现了数据的双向绑定又屏蔽了繁杂的DOM操作,在页面业务逻辑简单的情况下,开发及其及其简单。

    angular的不足:

    封装了原生的DOM接口,可能会引起渲染效率的下降。

    其余值得思考的问题:

    routeProvider所做的工作在服务端完成还是在客户端完成合适?(目前思路是需要测试一定情况下两者效率的差距,如果效率相差不大,我倾向于在客户端完成这项工作)。

  • 相关阅读:
    微服务架构技术栈选型手册(万字长文)
    Visual Studio 2013 always switches source control plugin to Git and disconnect TFS
    Visual Studio 2013 always switches source control plugin to Git and disconnect TFS
    MFC对话框中使用CHtmlEditCtrl
    ATL开发 ActiveX控件的 inf文件模板
    ActiveX: 如何用.inf和.ocx文件生成cab文件
    Xslt 1.0中使用Array
    如何分隔两个base64字符串?
    An attempt was made to load a program with an incorrect format
    JQuery 公网 CDN
  • 原文地址:https://www.cnblogs.com/Return-0/p/5330390.html
Copyright © 2011-2022 走看看