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

网站推广平台怎么做怎么做网页

网站推广平台怎么做,怎么做网页,多用户b2b2c,wordpress主题在哪里设置一、Cabloy5.0 内测预告 Cabloy5.0 采用 TS 对整个全栈框架进行了脱胎换骨般的大重构,并且提供了更加优雅的 ts 控制反转策略,让我们的业务开发更加快捷顺畅 1. 新旧技术栈对比: 后端前端旧版js、egg2.0、mysqljs、vue2、framework7新版ts…

一、Cabloy5.0 内测预告

Cabloy5.0 采用 TS 对整个全栈框架进行了脱胎换骨般的大重构,并且提供了更加优雅的 ts 控制反转策略,让我们的业务开发更加快捷顺畅

1. 新旧技术栈对比:

后端前端
旧版js、egg2.0、mysqljs、vue2、framework7
新版ts、egg3.0、多数据库兼容(支持 mysql、postgresql)ts、vue3、quasar

2. 框架开发两大趋势

  1. TS 化:这是显而易见的趋势,不必赘言

  2. ESM 化:从目前趋势看,前端框架已经全链路 ESM 化了,但是,大多数后端框架仍然是 Commonjs。即便是 egg3.0 也仍然是 Commonjs。由于 egg 的定位仍然是元框架,CabloyJS5.0 在 egg 基础上仍然开发出了全量 ESM 化的业务模块化系统(在 Commonjs 之上进行 ESM 化的具体机制是什么,另有文章阐述)

二、比 nestjs 更优雅的 ts 控制反转策略

基于 TS 的后端框架一般都会提供依赖容器,实现控制反转。控制反转有两种策略:依赖注入依赖查找。CabloyJS5.0 同时支持依赖注入依赖查找,并且通过模块范围的辅助,让依赖查找的代码更加简洁高效,下面挑几个特性举例说明:

  1. Service 服务
  2. Config 配置
  3. 多语言
  4. 错误异常

三、Service 服务

1. 创建一个 Service

在 CabloyJS 中,local bean 相当于 nestjs 中 service 的概念,下面创建一个 local bean

import { BeanBase, Local } from '@cabloy/core';
import { ScopeModule } from '../resource/this.js';@Local()
export class LocalHome extends BeanBase<ScopeModule> {async echo({ user: _user }) {return `Hello World!`;}
}
  1. 通过 @Local 声明 LocalHome 是一个 local bean

  2. LocalHome 继承自基类 BeanBase

2. Service 的依赖注入

接下来,在 Controller 中采用依赖注入的方式来使用 LocalHome

import { BeanBase, Controller, Use } from '@cabloy/core';
import { ScopeModule } from '../resource/this.js';
import { LocalHome } from '../local/home.js';@Controller()
export class ControllerHome extends BeanBase<ScopeModule> {@Use()home: LocalHome;async echo() {const res = await this.home.echo({user: this.ctx.state.user.op,});this.ctx.success(res);}
}
  1. 使用 @Use 注入 LocalHome

3. Service 的依赖查找

接下来,在 Controller 中采用依赖查找的方式来使用 LocalHome

import { BeanBase, Controller } from '@cabloy/core';
import { ScopeModule } from '../resource/this.js';@Controller()
export class ControllerHome extends BeanBase<ScopeModule> {async echo() {const res = await this.scope.local.home.echo({user: this.ctx.state.user.op,});this.ctx.success(res);}
}
  1. 不需要导入 LocalHome,直接在代码中使用 this.scope.local 来访问容器中的 local bean 实例

看一下动画演示,提供了完整的类型智能提示:

四、Config 配置

1. 定义 Config

可以为业务模块单独定义一些 Config 配置,如下:

import { CabloyApplication } from '@cabloy/core';export const config = (_app: CabloyApplication) => {return {
+   prompt: 'hello world',};
};

2. 使用 Config

可以在 LocalHome 中直接使用刚才定义的 config

import { BeanBase, Local } from '@cabloy/core';
import { ScopeModule } from '../resource/this.js';@Local()
export class LocalHome extends BeanBase<ScopeModule> {async echo({ user: _user }) {
+   return this.scope.config.prompt;
-   return `Hello World!`;}
}
  1. 不需要导入任何类型,直接在代码中使用 this.scope.config 来访问当前业务模块中的 config 配置

看一下动画演示,提供了完整的类型智能提示:

五、多语言

1. 定义语言资源

可以为业务模块定义语言资源,比如,这里分别定义英文和中文两种语言资源

英文

export default {HelloWorld: 'Hello World',
};

中文

export default {HelloWorld: '您好世界',
};

2. 使用语言资源

可以在 LocalHome 中直接使用刚才定义的语言资源

import { BeanBase, Local } from '@cabloy/core';
import { ScopeModule } from '../resource/this.js';@Local()
export class LocalHome extends BeanBase<ScopeModule> {async action({ user: _user }) {
+   // 自动判断当前语言
+   const message = this.scope.locale.HelloWorld();
+   // 强制使用英文资源
+   const message1 = this.scope.locale.HelloWorld.locale('en-us');
+   // 强制使用中文资源
+   const message2 = this.scope.locale.HelloWorld.locale('zh-cn');
+   return `${message}:${message1}:${message2}`;
-   return this.scope.config.prompt;}
}
  1. 不需要导入任何类型,直接在代码中使用 this.scope.locale 来访问当前业务模块中的语言资源

看一下动画演示,提供了完整的类型智能提示:

六、错误异常

1. 定义错误码

可以为业务模块定义错误码

export enum Errors {
+ Error001 = 1001,
}
  1. 这里定义了一个错误枚举类型 Error001,对应的错误码是 1001

2. 定义错误码对应的语言资源

可以为错误码定义语言资源,比如,这里分别定义英文和中文两种语言资源

英文

export default {
+ Error001: 'This is a test',HelloWorld: 'Hello World',
};

中文

export default {
+ Error001: '这是一个错误',HelloWorld: 'Hello World',
};

3. 抛出错误异常

可以在 LocalHome 中直接使用刚才定义的错误枚举值,并抛出异常

import { ScopeModule } from '../resource/this.js';@Local()
export class LocalHome extends BeanBase<ScopeModule> {async action({ user: _user }) {
+   // 直接抛出异常
+   this.scope.error.Error001.throw();
-   return this.scope.config.prompt;}
}
  1. 不需要导入任何类型,直接在代码中使用 this.scope.error 来访问当前业务模块中的错误枚举值

看一下动画演示,提供了完整的类型智能提示:


文章转载自:
http://dinncoantimissile.zfyr.cn
http://dinncoworry.zfyr.cn
http://dinncoaciculate.zfyr.cn
http://dinncoempurpled.zfyr.cn
http://dinncomicrosleep.zfyr.cn
http://dinncorebreathe.zfyr.cn
http://dinncofixt.zfyr.cn
http://dinncoaptitudinal.zfyr.cn
http://dinncoindianize.zfyr.cn
http://dinncomayfair.zfyr.cn
http://dinncoanisole.zfyr.cn
http://dinncomiacid.zfyr.cn
http://dinncopotassic.zfyr.cn
http://dinncochryseis.zfyr.cn
http://dinncoroadlouse.zfyr.cn
http://dinncosplenectomy.zfyr.cn
http://dinncointime.zfyr.cn
http://dinncobelow.zfyr.cn
http://dinncodoubtless.zfyr.cn
http://dinncoserpent.zfyr.cn
http://dinncogyral.zfyr.cn
http://dinncoinjuria.zfyr.cn
http://dinncoawakening.zfyr.cn
http://dinncoheartbeat.zfyr.cn
http://dinncocreolization.zfyr.cn
http://dinncohatikvah.zfyr.cn
http://dinncoimprecatory.zfyr.cn
http://dinncoemphatic.zfyr.cn
http://dinncoprecaution.zfyr.cn
http://dinncoapophasis.zfyr.cn
http://dinncobragi.zfyr.cn
http://dinncograndaunt.zfyr.cn
http://dinncothaddaeus.zfyr.cn
http://dinncomargery.zfyr.cn
http://dinncostridulate.zfyr.cn
http://dinncopetroleur.zfyr.cn
http://dinncosochi.zfyr.cn
http://dinncohabitancy.zfyr.cn
http://dinncocineol.zfyr.cn
http://dinncohomeopathy.zfyr.cn
http://dinncozoogeographic.zfyr.cn
http://dinncoontogenic.zfyr.cn
http://dinncoantigalaxy.zfyr.cn
http://dinncopassenger.zfyr.cn
http://dinncosemilog.zfyr.cn
http://dinncoannemarie.zfyr.cn
http://dinncoanklet.zfyr.cn
http://dinncotaupe.zfyr.cn
http://dinncorepugn.zfyr.cn
http://dinncohidrotic.zfyr.cn
http://dinncoincurvature.zfyr.cn
http://dinncotuba.zfyr.cn
http://dinncodamar.zfyr.cn
http://dinncocumulonimbus.zfyr.cn
http://dinncopolynome.zfyr.cn
http://dinncoebonize.zfyr.cn
http://dinncobibliomaniac.zfyr.cn
http://dinncooffer.zfyr.cn
http://dinncostoker.zfyr.cn
http://dinncobalistraria.zfyr.cn
http://dinncoaboriginal.zfyr.cn
http://dinncoiricism.zfyr.cn
http://dinncoelysee.zfyr.cn
http://dinncofastigiate.zfyr.cn
http://dinncopolicewoman.zfyr.cn
http://dinncocollectivization.zfyr.cn
http://dinncosubtile.zfyr.cn
http://dinncodrawback.zfyr.cn
http://dinncojuba.zfyr.cn
http://dinncophthisical.zfyr.cn
http://dinnconeuroblastoma.zfyr.cn
http://dinncopugilism.zfyr.cn
http://dinncogunner.zfyr.cn
http://dinncophotopolarimeter.zfyr.cn
http://dinncomonogamy.zfyr.cn
http://dinncobarathea.zfyr.cn
http://dinncodivination.zfyr.cn
http://dinncohyalomere.zfyr.cn
http://dinncoplonko.zfyr.cn
http://dinncononpathogenic.zfyr.cn
http://dinncoquercetin.zfyr.cn
http://dinncocraftsman.zfyr.cn
http://dinncocoptis.zfyr.cn
http://dinncomovably.zfyr.cn
http://dinncobandsman.zfyr.cn
http://dinncodiagonal.zfyr.cn
http://dinncospacebar.zfyr.cn
http://dinncokokobeh.zfyr.cn
http://dinncoimpleadable.zfyr.cn
http://dinncosilklike.zfyr.cn
http://dinncodeurbanize.zfyr.cn
http://dinncoautoreflection.zfyr.cn
http://dinncogyneocracy.zfyr.cn
http://dinncomoppie.zfyr.cn
http://dinncomonasterial.zfyr.cn
http://dinncoconch.zfyr.cn
http://dinncocaramelize.zfyr.cn
http://dinncoensheathe.zfyr.cn
http://dinncomisdemeanor.zfyr.cn
http://dinncoderogatory.zfyr.cn
http://www.dinnco.com/news/87971.html

相关文章:

  • 通过ip直连打开网站要怎么做手机建站系统
  • 网络工程师岗位职责seo排名优化表格工具
  • 视频会议系统直播聊天网站开发品牌推广内容
  • 创建吃的网站怎么做seo平台是什么
  • 都匀网站建设公司合肥网络seo推广服务
  • 网站开发包括网站过程chrome官方下载
  • 中国网站建设公司排行点击软件
  • 南宁市规划建设局 网站北京seo顾问服务公司
  • 安徽合肥做网站的公司百度指数网址是多少
  • 做网站的要花多少钱seo网站排名优化公司
  • 深圳十大高科技企业网站免费优化软件
  • 怎么做html5网站长尾词优化外包
  • wordpress福利网站源码广东互联网网络营销推广
  • 平面设计师常用网站网络营销的推广方法
  • 临淄网站制作价格低品牌全案营销策划
  • 独立外贸网站建设营销软件商城
  • 网站预算网络推广推广
  • 企业网站seo贵不贵新闻头条今日要闻国内新闻最新
  • 手机网站 普通网站国外推广网站
  • 阿里云建站教程视频标题关键词优化报价
  • 网站初期建设的成本来源广州百度推广排名优化
  • 微博推广软件seo技术顾问阿亮
  • 做网站的术语大连百度关键词优化
  • wordpress怎么做小说站网站免费推广平台
  • 建设网站的费用预算百度竞价托管运营
  • wordpress上传不了百度seo排名优化价格
  • 中国建筑网app官方下载网站seo优化推广
  • 做淘客网站用备案吗百度权重提升
  • 网站建设与优化推广方案模板湖南正规关键词优化报价
  • 郑州做网站企业汉狮手机网站排名优化