浅谈angular原理(个人见解)

任何一门语言的学习都需要了解它的核心概念,处理流程和实现原理,这样才能在编译出现问题或者没有达到我们想要的结果时,及时准确的发现问题所在。下面我想谈一下我对angular原理的理解,不仅为了加深我自身对于angularjs的理解,同时也希望帮助到正在或即将学习这门语言的人。

Angular是基于MVC模式的开发语言,将应用分解成独立的表现、数据、逻辑三种组件。MVC让AngularJS应用更好地结构化,更容易实现和更容易测试。

下面是一个简单的启动过程:首先,浏览器载入HTML,然后把它解析成DOM,载入angular.js脚本。之后AngularJS寻找ng-app指令,这个指令指示了应用的边界,使用ng-app中指定的模块来配置注入器($injector),注入器($injector)是用来创建“编译服务($compile service)”和“根作用域($rootScope)”的。编译服务($compile service)是用来编译DOM并把它链接到根作用域($rootScope)的。

在执行过程中,利用MVC模式渲染视图。首先浏览器的事件循环等待事件的触发。所谓事件包括用户的交互操作、定时事件、或者网络事件(服务器的响应)。在事件触发后,回调会被执行。此时会进入Javascript上下文。通常回调可以用来修改DOM结构。一旦回调执行完毕,浏览器就会离开Javascript上下文,并且根据DOM的修改重新渲染视图。

下面解释一下几个重要概念:

视图:就是指用户所看见的。 视图的生命周期由作为一个模板开始,它将和模型合并并最终渲染到浏览器的DOM中。与其他模板系统不同的是,AngularJS使用一种独特的形式来渲染视图。

模型:模型就是用来和模板结合生成视图的数据。模型必须在作用域中时可以被引用,这样才能被渲染生成视图。和其他框架不一样的是,Angularjs对模型本身没有任何限制和要求。你不需要继承任何类也不需要实现指定的方法以供调用或者改变模型。 模型可以是原生的对象哈希形式的,也可以是完整对象类型的。简而言之,模型可以是原生的Javascript对象。

控制器:视图背后的控制代码就是控制器。它的主要工作内容是构造模型,并把模型和回调方法一起发送到视图。 视图可以看做是作用域在模板(HTML)上的“投影(projection)”。而作用域是一个中间地带,它把模型整理好传递给视图,把浏览器事件传递给控制器。

作用域:作用域是用来检测模型的改变和为表达式提供执行上下文的。它是分层组织起来的,并且层级关系是紧跟着DOM的结构的。

用一句话来总结:在作用域的范围内,通过控制器的控制和模型方法实现,形成视图并被渲染到页面中,最终形成我们所看到的html页面。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值