加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

透过现象看本质: 常见的前端架构风格和案例

发布时间:2019-10-16 20:08:03 所属栏目:建站 来源:_sx_
导读:所谓软件架构气魄沤背同是指描写某个特定应用规模中体系组织方法的习用模式。架构气魄威风凛凛界说一个词汇表和一组束缚,词汇表中包括一些组件及毗连器,束缚则指出体系怎样将构建和毗连器组合起来。软件架构气魄威风凛凛反应了规模中浩瀚体系所共有的布局和语义特征,并指导

下面是典范的AngularJS代码, 视图层:

  1. <h2>Todo</h2> 
  2. <div ng-controller="TodoListController as todoList"> 
  3.  <span>{{todoList.remaining()}} of {{todoList.todos.length}} remaining</span> 
  4.  [ <a href="" ng-click="todoList.archive()">archive</a> ] 
  5.  <ul class="unstyled"> 
  6.  <li ng-repeat="todo in todoList.todos"> 
  7.  <label class="checkbox"> 
  8.  <input type="checkbox" ng-model="todo.done"> 
  9.  <span class="done-{{todo.done}}">{{todo.text}}</span> 
  10.  </label> 
  11.  </li> 
  12.  </ul> 
  13.  <form ng-submit="todoList.addTodo()"> 
  14.  <input type="text" ng-model="todoList.todoText" size="30" 
  15.  placeholder="add new todo here"> 
  16.  <input class="btn-primary" type="submit" value="add"> 
  17.  </form> 
  18. </div> 

逻辑层:

  1. angular.module('todoApp', []) 
  2.  .controller('TodoListController', function() { 
  3.  var todoList = this; 
  4.  todoList.todos = [ 
  5.  {text:'learn AngularJS', done:true}, 
  6.  {text:'build an AngularJS app', done:false}]; 
  7.  todoList.addTodo = function() { 
  8.  todoList.todos.push({text:todoList.todoText, done:false}); 
  9.  todoList.todoText = ''; 
  10.  }; 
  11.  todoList.remaining = function() { 
  12.  var count = 0; 
  13.  angular.forEach(todoList.todos, function(todo) { 
  14.  count += todo.done ? 0 : 1; 
  15.  }); 
  16.  return count; 
  17.  }; 
  18.  todoList.archive = function() { 
  19.  var oldTodos = todoList.todos; 
  20.  todoList.todos = []; 
  21.  angular.forEach(oldTodos, function(todo) { 
  22.  if (!todo.done) todoList.todos.push(todo); 
  23.  }); 
  24.  }; 
  25. }); 

至于MVP、MVVM,这些MVC模式的延展可能进级,网上都大量的资源,这里就不予赘述。

Redux

Redux是Flux架构的改造、融合了Elm说话中函数式的头脑. 下面是Redux的架构图:

措施员透过征象看本质:常见的前端架构气魄威风凛凛和案例

从上图可以看出Redux架构有以下要点:

  • 单一的数据源.
  • 单向的数据流.

单一数据源, 起首办理的是传统MVC架构多模子数据流紊乱题目(如下图)。单一的数据源可以让应用的状态可猜测和可被调试。其它单一数据源也利便做数据镜像,实现取消/重做,数据耐久化等等成果

措施员透过征象看本质:常见的前端架构气魄威风凛凛和案例

单向数据流用于帮助单一数据源, 首要目标是阻止应用代码直接修改数据源,这样一方面简化数据流,同样也让应用状态变革变得可猜测。

上面两个特点是Redux架构气魄威风凛凛的焦点,至于Redux还夸大不行变数据、操作中间件封装副浸染、范式化状态树,只是一种最佳实践。尚有很多类Redux的框架,譬喻Vuex、ngrx,在架构想想条理是同等的:

措施员透过征象看本质:常见的前端架构气魄威风凛凛和案例

复制气魄威风凛凛

措施员透过征象看本质:常见的前端架构气魄威风凛凛和案例

基于复制(Replication)气魄威风凛凛的体系,会操作多个实例提供沟通的处事,来改进处事的可会见性和可伸缩性,以及机能。这种架构气魄威风凛凛可以改进用户可察觉的机能,简朴处事相应的耽误。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读