首页 > web前端 > js教程 > 聪明的前端和愚蠢的后端:AngularJS中的持久状态

聪明的前端和愚蠢的后端:AngularJS中的持久状态

Joseph Gordon-Levitt
发布: 2025-02-18 09:48:13
原创
615 人浏览过

Smart Front-ends & Dumb Back-ends: Persisting State in AngularJS

用户与网站生成应用程序状态的用户交互 - 例如,按钮点击或文本输入。这种状态以JavaScript对象(数组,字符串等)为单位,需要持久。本文探讨了坚持这种状态的技术,区分临时数据和基本数据。

密钥概念:

AngularJS中的状态持久性:在页面刷新和应用程序重新启动过程中维护用户数据和应用程序设置。 对于单页应用程序(SPA)必不可少的。

    >
  • 持久性的方法:>
  • 演示应用程序:随附的演示使用。 在应用程序负载上,它检索保存的数据或创建样本。 编辑保存在输入字段模糊中。
  • 智能前端,愚蠢的后端:文章提倡一个设计,后端充当同步服务器,处理简单的存储任务。 复杂的业务逻辑位于前端,从而实现了离线的第一体验。这种方法增加了后端技术不可知论,优先级可用性,备份和速度。 localStorage入门:分开临时数据
  • 考虑一个对象数组,有些具有临时密钥。 这些临时密钥不应持续。 该示例使用AngularJS应用程序,标记有下划线前缀的临时密钥。 最初的HTML:
初始JavaScript:

>在localstorage中持续存在

<div ng-repeat="thing in things track by thing.id" ng-click="thing._expanded=!thing._expanded">
    <div ng-if="thing._expanded">EXPANDED VIEW</div>
    <div ng-if="!thing._expanded">collapsed view</div>
</div>
登录后复制
持续

(例如,一个待办事项列表),我们需要选择性保存数据。 可以再生临时属性(例如

)。 简单
angular.module('app', []).controller('Ctrl', ($scope) => {
    $scope.things = [
      {id: 1, key: 'Value'},
      {id: 2, key: 'Value2'},
      {id: 3, key: 'Value3'},
    ];
});
登录后复制
不够,因为它节省了不需要的数据。 我们需要一个深层副本和数据过滤:

可以删除Angularjs的

。 使用$scope.things预防_expanded发电。localStorage.setItem>

let copy = Array.from(myArray, (item) => {
  let obj = Object.assign({}, item);
  for (let key of Object.keys(obj)) {
    if (key.startsWith('_') || key === '$$hashKey') {
      delete obj[key];
    }
  }
  return obj;
});
登录后复制
>增强演示应用:每周日志

angular.toJson(myObject)> $$hashKey一个更实用的演示是每周的日志,每天允许文本输入。 HTML包含输入字段,并使用ng-repeat="thing in things track by thing.id"来触发保存。 JavaScript处理数据准备,深克隆,过滤和$$hashKey持久性。

结论:前端和后端开发的未来

>

这种方法是可扩展和现实的。 趋势是朝着更聪明的前端和更简单的后端迈进。 后端成为同步服务器,在前端管理复杂的业务逻辑时处理数据存储。这可以实现脱机应用程序,并提高后端技术灵活性。 该演示使用localStorage,但是诸如Kinto,Pouchdb或Firebase之类的替代方案很容易替换。

>

>常见问题(常见问题解答):(本节在很大程度上与输入保持不变,因为这是一个有用的补充,并且不需要重大重写来释义。)

>)

>在Angularjs中持续状态的意义是什么? AngularJS中的持续状态对于维护用户数据或应用程序设置至关重要,即使在页面进行刷新或应用程序重新启动之后。这在需要从不同观点上维护国家的单页应用程序中尤其重要。没有状态持久性,输入的任何数据或用户所做的更改将在刷新或从页面上导航,从而导致用户体验差。

(FAQ部分的其余部分都同样遵循,因为它已经写得很好且内容丰富。)

以上是聪明的前端和愚蠢的后端:AngularJS中的持久状态的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板