zoukankan      html  css  js  c++  java
  • Angular service, 服务


     
    早上开车上班, 发现车快没油了, 于是拐进加油站. 有一辆出租车也在加油..
     
    Angular service在一个应用里是以单例形式存在的. 这个单例的实例是由service factory(service工厂)创建的.
     
    • 加油, 就好比是一个 Angular service; 
    • 不论是我加的油, 还是出租车加的油, 都是从这个加油站同一个地下油罐取出来的同样的汽油. 大家使用的都是同一个汽油实例(单例);
    • 我的车与出租车共享了加的汽油的属性, 比如: 都是93#汽油, 掺水的比例, ...
    因此, 在Angular里, 如下情况会考虑使用service:
    • 可重用的, 纯业务逻辑的代码, 与$scope无关的代码可以被写成service. DRY.
    • 用service共享数据, 因为在应用中, 对service的依赖都是引用同一个service实例
    • ...
    ------
    开头写到 service 是由 service factory(是一个函数) 所创建, service factory 就好比上图的那2个油桶.
     
    在Angular体系中, service factory 又是由 service provider(是构造函数) 所创建, service provider 就好比这个加油站.
    设想如果加油站很大, 必须有一个指路牌, 标识出在哪儿加93#汽油. service provider 函数必须包含名为 $get 的属性, 它指向 service factory 函数. 就好比, $get 这个路标指示我们在哪儿找到93#加油点.
     
     
    Angular 提供了5个创建service的方法, 由繁到简, 或具有特殊功能
    • .provider(provider)
    • .constant(obj)
    • .value(obj)
    • .factory(fn)
    • .service(class)
    主要相比较的为 provider(), factory(), service() 3个函数.
    用它们定义service时, 写法各不相同.
    最终实例化的方式也不同.
    provider() 好比整个加油站, 可配置性强, 程序员可以尽情发挥..
    factory(), service() 次之, 哪里需要哪里搬, 定义简单, 
     
    ----
     
    var provider = function() {
     
      this.$get = function factory() {
        
      }
     
    }
    

     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    将vue文件script代码抽取到单独的js文件
    git pull 提示错误:Your local changes to the following files would be overwritten by merge
    vue和uniapp 配置项目基础路径
    XAMPP Access forbidden! Access to the requested directory is only available from the local network.
    postman与newman集成
    postman生成代码段
    Curl命令
    POST方法的Content-type类型
    Selenium Grid 并行的Web测试
    pytorch转ONNX以及TnesorRT的坑
  • 原文地址:https://www.cnblogs.com/patrick-holynova/p/3727154.html
Copyright © 2011-2022 走看看