当前位置: 首页 > news >正文

wordpress author桔子seo网

wordpress author,桔子seo网,前端做项目有哪些网站,wordpress主动提交百度为什么要为Vue3提供ioc容器 Vue3因其出色的响应式系统#xff0c;以及便利的功能特性#xff0c;完全胜任大型业务系统的开发。但是#xff0c;我们不仅要能做到#xff0c;而且要做得更好。大型业务系统的关键就是解耦合#xff0c;从而减缓shi山代码的生长。而ioc容器是…为什么要为Vue3提供ioc容器 Vue3因其出色的响应式系统以及便利的功能特性完全胜任大型业务系统的开发。但是我们不仅要能做到而且要做得更好。大型业务系统的关键就是解耦合从而减缓shi山代码的生长。而ioc容器是目前最好的解耦合工具。Angular从一开始就引入了ioc容器因此在业务工程化方面一直处于领先地位并且一直在向其他前端框架招手“我在前面等你们希望三年后能再见”。那么我就试着向前走两步在Vue3中引入ioc容器并以此为基础扩充其他工程能力得到一个新框架Zova。诸君觉得是否好用欢迎拍砖、交流 IOC容器分类 在 Zova 中有两类 ioc 容器: 全局ioc容器在系统初始化时会自动创建唯一一个全局 ioc 容器。在这个容器中创建的Bean实例都是单例模式组件实例ioc容器在创建 Vue 组件实例时系统会为每一个 Vue 组件实例创建一个 ioc 容器。在这个容器中创建的Bean实例可以在组件实例范围之内共享数据和逻辑 Bean Class Zova 采用模块化体系Bean Class 都由不同的模块提供。使用模块内部的 Bean Class 时可以直接基于Class类型定位。在跨模块使用时可以基于Bean标识定位而不是基于Class类型/文件路径定位这样有利于实现模块之间的松耦合 因此Zova 提供了两类 Bean Class 匿名bean使用Local装饰的 class 就是匿名bean。此类 bean 仅在模块内部使用不存在命名冲突的问题定义和使用都很便捷具名bean除了Local之外其他装饰器函数装饰的 class 都是具名bean。Zova 为此类 bean 提供了命名规范既可以避免命名冲突也有利于跨模块使用 注入机制 Zova 通过Use装饰器函数注入 Bean 实例提供了以下几种注入机制 1. Bean Class 通过Bean Class在 ioc 容器中查找并注入 Bean 实例如果不存在则自动创建。这种机制一般用于同模块注入 import { ModelTodo } from ../../bean/model.todo.js;class ControllerTodo {Use()$$modelTodo: ModelTodo; }2. Bean标识 通过Bean标识在 ioc 容器中查找并注入 Bean 实例如果不存在则自动创建。这种机制一般用于跨模块注入和层级注入 import type { ModelTabs } from zova-module-a-tabs;class ControllerLayout {Use(a-tabs.model.tabs)$$modelTabs: ModelTabs; }通过a-tabs.model.tabs查找并注入 Bean 实例因此只需导入 ModelTabs 的 type 类型从而保持模块之间的松耦合关系 3. 注册名 通过注册名在 ioc 容器中查找并注入 Bean 实例如果不存在则返回空值。这种机制一般用于同模块注入和层级注入 import type { ModelTodo } from ../../bean/model.todo.js;class ControllerTodo {Use({ name: $$modelTodo })$$modelTodo: ModelTodo; }通过注册名$$modelTodo查找并注入 Bean 实例。一般而言应该确保在 ioc 容器中已经事先注入过 Bean 实例否则就会返回空值 4. 变量名 通过变量名在 ioc 容器中查找并注入 Bean 实例如果不存在则返回空值。这种机制一般用于同模块注入和层级注入 import type { ModelTodo } from ../../bean/model.todo.js;class ControllerTodo {Use()$$modelTodo: ModelTodo; }通过变量名$$modelTodo查找并注入 Bean 实例。一般而言应该确保在 ioc 容器中已经事先注入过 Bean 实例否则就会返回空值 注入范围 匿名bean的默认注入范围都是ctx具名bean可以在定义时指定默认注入范围不同的场景(scene)有不同的默认注入范围。 此外在实际注入时还可以在Use 中通过injectionScope选项覆盖默认的注入范围 Zova 提供了以下几种注入范围app/ctx/new/host/skipSelf 1. app 如果注入范围是 app那么就在全局 ioc 容器中注入 bean 实例从而实现单例的效果 // in module: test-module1 Store() class StoreCounter {}// in module: test-module2 import type { StoreCounter } from zova-module-test-module1;class Test {Use(test-module1.store.counter)$$storeCounter: StoreCounter; }Store 的注入范围默认是 app因此通过 Bean 标识test-module1.store.counter在全局 ioc 容器中查找并注入 bean 实例 2. ctx 如果注入范围是 ctx那么就在当前组件实例的 ioc 容器中注入 bean 实例 // in module: a-tabs Model() class ModelTabs {}// in module: test-module2 import type { ModelTabs } from zova-module-a-tabs;class ControllerLayout {Use(a-tabs.model.tabs)$$modelTabs: ModelTabs; }Model 的注入范围默认是 ctx因此通过 Bean 标识a-tabs.model.tabs在当前组件实例的 ioc 容器中查找并注入 bean 实例 3. new 如果注入范围是 new那么就直接创建新的 bean 实例 // in module: a-tabs Model() class ModelTabs {}// in module: test-module2 import type { ModelTabs } from zova-module-a-tabs;class ControllerLayout {Use({ beanFullName: a-tabs.model.tabs, injectionScope: new })$$modelTabs: ModelTabs; }由于指定 injectionScope 选项为 new因此通过 Bean 标识a-tabs.model.tabs直接创建新的 bean 实例 层级注入 注入范围除了支持app/ctx/new还支持层级注入host/skipSelf 4. host 如果注入范围是 host那么就在当前组件实例的 ioc 容器以及所有父容器中依次查找并注入 bean 实例如果不存在则返回空值 // in parent component import type { ModelTabs } from zova-module-a-tabs;class Parent {Use(a-tabs.model.tabs)$$modelTabs: ModelTabs; }// in child component import type { ModelTabs } from zova-module-a-tabs;class Child {Use({ injectionScope: host })$$modelTabs: ModelTabs; }由于父组件已经注入了 ModelTabs 的 bean 实例因此子组件可以直接查找并注入层级注入同样支持所有注入机制Bean Class/Bean标识/注册名/变量名 5. skipSelf 如果注入范围是 skipSelf那么就在所有父容器中依次查找并注入 bean 实例如果不存在则返回空值 Zova已开源https://github.com/cabloy/zova
http://www.dnsts.com.cn/news/259144.html

相关文章:

  • 网站服务韩国足球出线
  • 想建设一个网站自己接一些小活制作应用的软件
  • 网站建设注册门户网站的优点
  • 为中小型企业构建网站php网站开发学什么
  • 免费网站建设域名app开发一个多少钱
  • 做网站资金来源是什么电商的推广方式有哪些
  • 青岛网站推广怎么做好网站系统与网站源码的关系
  • 潍坊网站推广服务商标有哪些
  • 手表网站网站建设越来越便宜
  • 怎么做卡盟网站免费国际国内新闻
  • 公司怎么建立网站吗最炫表白网站html5源码
  • 怎么申请自己的网站邢台中北世纪城网站兼职
  • 深圳品牌做网站成都网站asp access源码购买修改
  • 泰州网站制作网站厦门建设厅查询网站首页
  • 泰州网站建设报价wordpress 懒人图库
  • 专门做网站公司长沙市住房和城乡建设局
  • 我爱深圳网站设计福建建设执业资格网站报名系统
  • seo短视频网页入口引流下载连云港网站排名优化
  • 正能量视频免费网站免下载怎样用织梦建设网站
  • 微网站制作工具网络建设工作总结
  • 做网站的html框架安庆网站建设推广
  • 电商网站首页设计建筑工程网络计划视频教程
  • 微信开放平台与个人网站怎么推广优化
  • 全国网站制作公司怎样在wordpress设置伪静态
  • 宿迁手机网站开发公司沈阳网络推广培训
  • 跟老外做网站做娱乐新闻的网站有哪些
  • 如何建设网站首页做网站公司推荐
  • 北京模板建站软件黄页引流推广网站
  • 长春 建网站网络营销是干啥的
  • 网站怎么做图片搜索梵克雅宝五花手链