首页 > 其他 > 详细

4-14 依赖注入(2)

时间:2020-08-28 13:56:02      阅读:102      评论:0      收藏:0      [点我收藏+]

创建service服务,用来把数据存取的逻辑从组件当中剥离出来。

home下创建services文件夹
技术分享图片

技术分享图片

技术分享图片
把home.service导出
技术分享图片
技术分享图片

技术分享图片
在模板这里输入Home。模板帮我们加了注解@Injectable()
技术分享图片
我们把之前写的ts的数据赋值过来
技术分享图片

技术分享图片
注入homeService
技术分享图片
topMenu还是这个类型。只不过现在是一个空的数组。
技术分享图片
调用service的方法
技术分享图片

详情的数据也放到service里面

技术分享图片


技术分享图片

技术分享图片

都设置为空数组,从service中获取数据
技术分享图片
构造函数注入
技术分享图片

ngInit方法内赋值
技术分享图片

注意一定要Providers

技术分享图片

页面效果不变。
技术分享图片
依赖注入的好处 让彼此耦合性降低了。

不是具体的类,而是一个配置的注入或者是一个值

把某一个api的url当做一个值传递过去。

技术分享图片
在下面输出
技术分享图片
技术分享图片

技术分享图片
虽然是获取到了。但是这里有一个警告
技术分享图片
为了避免起名的冲突
技术分享图片
创建了一个const常量 token 使用 InjectionToken。这样angular在引用的时候会处理 ,避免冲突。
技术分享图片
这样把token当做是唯一辨识
技术分享图片
技术分享图片


技术分享图片
把这个token粘贴出来
技术分享图片
放在这里导出出去
技术分享图片


技术分享图片
技术分享图片
技术分享图片

技术分享图片

providers配置

技术分享图片
技术分享图片

技术分享图片

angular6开始有的特性

实际services可以不在provider里面声明
技术分享图片
一般服务注册到应用的根
技术分享图片
这样写的好处,如果有多个服务在providers声明出来。别人去import我们的module。注入的这些服务都可以用了。它会导致编译成js的时候,所有提供的服务都会编译到js文件当中去。不管你用还是不用,
但是当我们写成下面这种形式的时候,它就不会出现这种问题了。编译出来的大小就比较小。只有你真正的注入了。才会编译到js里面。这其实就是干这用的。主要是第三类库开发的作者,使用它有效的减小体积。这个写法一直是官方在推动的。
技术分享图片
如果注入到某一个模块就这么写
技术分享图片
 

结束

 

4-14 依赖注入(2)

原文:https://www.cnblogs.com/wangjunwei/p/13576919.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!