• 自动秒收录
  • 软件:1973
  • 资讯:57811|
  • 收录网站:279872|

IT精英团

浅谈低代码平台的远程组件加载方案

浅谈低代码平台的远程组件加载方案

浏览次数:
评论次数:
编辑: 景同
信息来源: ITPUB
更新日期: 2022-08-10 00:02:25
摘要

浅谈低代码平台远程组件加载方案https://www.zoo.team/article/low-codehttps:前言低代码开发平台(LCDP)是无需编码(0代码)或通过少量代码就可以快速生成应用

  • 正文开始
  • 相关阅读
  • 推荐作品

低代码平台远程组件加载方案探讨

https://www.zoo.team/article/low-code

https:简介

低代码开发平台(LCDP)是一个无需编码(0代码)或少量代码就能快速生成应用的开发平台。通过可视化应用程序开发方法,不同经验水平的开发人员可以使用拖放组件和模型驱动逻辑,通过图形用户界面创建网页和移动应用程序。在过去的两年里,越来越多的公司和开发者开始开发自己的低代码平台,以降低成本,提高效率。今天我想和大家分享一个在低代码平台开发中遇到的问题以及相应的解决方案。

Https:问题

低码平台之所以不需要写代码,是因为平台提供了很多可配置的组件,让平台的用户可以通过配置生成自己想要的产品。所以如果想配置更多的效果,需要保证素材库足够丰富。

如果有许多材料组件,您需要按需加载组件。现有的开发工具如Webpack也支持代码分区。然而,在低代码平台的开发场景中,平台应用与组件分离,这需要用户在选择组件时加载远程组件代码。

Https:加载方案

Https:组件代码HTTPS 3360

我们以vue框架为例。如果当前有一个包含以下代码的组件A,我们如何远程加载这个组件?

https :模板

div{{text}}/div

/模板

脚本

从“vue”导入{ defineComponent,ref };

从“lodash”导入;

导出默认定义组件({

设置(道具){

console.log(_。get(道具,' a ');

返回{

onAdd,

选项,

尺寸,

text: '你好,世界',

};

},

});

/脚本

风格。wp {

颜色:粉色;

}

/风格

Https:方案1:放在全局对象HTTPS 3360上

HTTPS 3360步

打包:组件代码以umd格式打包,打包时配置Webpack externals,这样打包的产品不包含公共依赖;

上传:将打包的组件js上传到cdn;

Load:当你需要使用一个组件时,插入一个脚本,在这个脚本中,组件被放置在一个全局对象上;

注册:脚本插入完成后,从全局对象中获取组件并注册;

Https:组件包装HTTPS 3360

首先,您需要添加一个条目文件。

https : https : importcomponentttps : from https :/index . vue ';

https:if(!https:window.share){

r>  https:window.share = {};
}

https:window.share[Component.name] = Component;

以上面的入口文件为入口,用 Webpack 打包为 umd 格式

https:https:// 组件打包 Webpack 配置
https:const path = https:require(https:'path');
https:const { VueLoaderPlugin } = https:require(https:'vue-loader')

https:module.exports = {
  https:mode: https:'production',
  https:entry: path.resolve(__dirname, https:'./comps/index.js'),
  https:output: {
    https:filename: https:'index.js',
    https:path: path.resolve(__dirname, https:'dist'),
    https:library: { https:type: https:'umd' }
  },
  https:module: {
    https:rules: [
      {
        https:test: https:/\.vue$/,
        https:use: https:'vue-loader',
        https:exclude: https:/node_modules/,
      },
      {
        https:test: https:/\.js$/,
        https:loader: https:'babel-loader'
      },
      {
        https:test: https:/\.css$/,
        https:use: [
          https:'vue-style-loader',
          https:'css-loader'
        ]
      }
    ]
  },
  https:plugins: [
    https:new VueLoaderPlugin()
  ],
  https:externals: {
    https:vue: https:'vue',
    https:lodash: https:'lodash',
  }
};

https:html 模板https:

组件公共依赖都需要先加入到模板 html 中

https:https:<!DOCTYPE https:html>
https:<https:html https:lang=https:"en">
https:<https:head>
    https:<https:meta https:charset=https:"UTF-8">
    https:<https:meta https:http-equiv=https:"X-UA-Compatible" https:content=https:"IE=edge">
    https:<https:meta https:name=https:"viewport" https:content=https:"width=device-width, initial-scale=1.0">
    https:<https:title>Documenthttps:</https:title>
    https:<https:script https:src=https:"https://cdn/vue.global.js">https:</https:script>
    https:<https:script https:src=https:"https://cdn/lodash@4.17.21.min.js">https:</https:script>
https:</https:head>
https:<https:body>
    https:<https:div https:id=https:"root">https:</https:div>
https:</https:body>
https:</https:html>

https:组件加载逻辑https:

https:https:const loadComponent = https:(https:name) => https:new https:Promise(https:(https:resolve) => {
  https:const script = https:document.createElement(https:'script');
  script.src=https:`http://xxx/https:${name}.js`;
  script.onload = script.onreadystatechange = https:https:function(https:){
     resolve();
  };
  https:document.querySelector(https:'head').appendChild(script);
})

https:const addComp = https:async (name) => {
   https:await loadComponent(name);
   https:// 注册组件,其中 app 为 Vue 应用实例对象
   app.component(name, https:window.share[name]);
}

https:// 动态注册组件
addComp(https:'A');


https:缺点https:

  1. 组件的依赖共享,需要依赖提前先放到全局,html 模板需要较频繁改动;
  2. 全局对象上要挂载的内容越来越多,影响加载性能,没有做到真正的按需加载;
  3. 依赖版本难以管理。如 A 组件依赖了 loadsh 1.0, 而 B 组件依赖了 lodash 2.0,但是全局对象上的 lodash,同时挂载两个版本就必然会有冲突,因此版本必须一致;且后续如果某个组件要升级某个依赖的版本,也势必会影响所以其他组件。

https:方案二:amdhttps:

amd 格式也是一种模块化方案,这里我们选择知名度比较高的 require.js 作为 amd 模块加载器。

https:步骤https:

  1. 打包:组件代码打包为 umd 或 amd 格式,打包时配置 Webpack externals,使打包产物不包含公共的依赖;
  2. 上传:打包的组件 js 上传到 cdn;
  3. 加载&注册:在需要使用组件时,用 requirejs 获取组件,并进行注册。

https:组件打包https:

用 amd 格式来做远程加载时不需要像方案一一样,增加额外的入口文件,可以直接将 .vue 文件作为入口。以下是 Webpack 打包配置示例

https:https:// 组件打包 Webpack 配置
https:const path = https:require(https:'path');
https:const { VueLoaderPlugin } = https:require(https:'vue-loader')

https:module.exports = {
  https:mode: https:'production',
  https:entry: path.resolve(__dirname, https:'./comps/index.vue'),
  https:output: {
    https:filename: https:'index.js',
    https:path: path.resolve(__dirname, https:'dist'),
    https:library: { https:type: https:'umd' }  https:// 输出 amd 或者 umd
  },
  https:module: {
    https:rules: [
      {
        https:test: https:/\.vue$/,
        https:use: https:'vue-loader',
        https:exclude: https:/node_modules/,
      },
      {
        https:test: https:/\.js$/,
        https:loader: https:'babel-loader'
      },
      {
        https:test: https:/\.css$/,
        https:use: [
          https:'vue-style-loader',
          https:'css-loader'
        ]
      }
    ]
  },
  https:plugins: [
    https:new VueLoaderPlugin()
  ],
  https:externals: {
    https:vue: https:'vue',
    https:lodash: https:'lodash',
  }
};

https:html 模板https:

https:https:<!DOCTYPE https:html>
https:<https:html https:lang=https:"en">
https:<https:head>
    https:<https:meta https:charset=https:"UTF-8">
    https:<https:meta https:http-equiv=https:"X-UA-Compatible" https:content=https:"IE=edge">
    https:<https:meta https:name=https:"viewport" https:content=https:"width=device-width, initial-scale=1.0">
    https:<https:title>Documenthttps:</https:title>
    https:<https:script https:src=https:"./require.js">https:</https:script>
https:</https:head>
https:<https:body>
    https:<https:div https:id=https:"app">https:</https:div>
https:</https:body>
https:</https:html>

https:组件加载逻辑https:

https:https:// main.js
requirejs.config({
  https:baseUrl: https:'https://cdn.xxx.com',
  https:map: {
    https:'*': {
      https:css: https:'require-css',
    },
  },
  https:paths: {
    https:echarts: https:'echarts@5.1.1',
    https:vueDemo: https:'vue-demo',
    https:vue: https:'vue@3.2.37',
    https:moment: https:'https://cdn/moment@2.29.1.min',
  },
  https:shim: {
    https:'ant-design-vue': [https:'css!https://cdn/ant-design-vue@2.1.6.min.css'],
  },
});

requirejs([https:'vue', https:'vue-demo', https:'vue-app'], https:https:function (https:vue, vueDemoModule, VueAppModule) {
  https:const app = Vue.createApp(VueAppModule.default);
  app.component(https:'vue-demo', vueDemoModule.default);
  https:const vm = app.mount(https:'#app');
});

https:缺点https:

  1. 平台代码(上述代码的vue-app)也需要编译为 amd 格式,然后上传到 cdn 上,开发流程改变,需要定制化的开发平台项目的发布机制。
  2. 有些第三方库没有提供 amd 或 umd 格式,需要开发者自己开发工具去转换(此过程中可能有很多坑要踩);

https:优点https:

  1. 相比于方案一,组件的依赖可以有版本差异且互相不影响。
  2. 组件和组件的依赖都可以按需加载,真正做到按需加载。
  3. 有现成的加载 css 文件的机制;

https:方案三:ESModulehttps:

https:步骤https:

  1. 打包:组件代码打包为 esm 格式,打包时配置 Webpack externals, 使打包产物不包含公共的依赖;
  2. 上传:打包的组件 js 上传到 cdn;
  3. 加载&注册:在需要使用组件时,用 esm 的动态引入获取组件,并进行注册;

https:组件打包https:

这里需要注意的是,externals 配置项中直接把公共依赖配置为 cdn 地址;

https:https:import path https:from https:'path';
https:import VueLoader https:from https:'vue-loader';

https:const VueLoaderPlugin = VueLoader.VueLoaderPlugin;

https:const __dirname = path.resolve();

https:export https:default {
  https:mode: https:'development',
  https:entry: path.resolve(__dirname, https:'./src/vue-demo.vue'),
  https:output: {
    https:filename: https:'vue-demo.esm.js',
    https:path: path.resolve(__dirname, https:'components'),
    https:library: { https:type: https:'module' }
  },
  https:experiments: { https:outputModule: https:true },
  https:module: {
    https:rules: [
      {
        https:test: https:/\.vue$/,
        https:use: https:'vue-loader',
        https:exclude: https:/node_modules/,
      },
      {
        https:test: https:/\.js$/,
        https:loader: https:'babel-loader'
      },
      {
        https:test: https:/\.css$/,
        https:use: [
          https:'vue-style-loader',
          https:'css-loader'
        ]
      }
    ]
  },
  https:plugins: [
    https:new VueLoaderPlugin()
  ],
  https:externals: {
    https:vue: https:'https://cdn.jsdelivr.net/npm/vue@3.2.37/dist/vue.esm-browser.js',
    https:'lodash': https:'https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.js'
  }
};

使用上述配置打包后产物,中会把 'vue'替换为 externals 中的 cdn 地址

https:https:// 输入
https:import Vue https:from https:'vue';

https:// 输出结果
https:import Vue https:from https:'https://cdn.jsdelivr.net/npm/vue@3.2.37/dist/vue.esm-browser.js';

https:组件加载逻辑https:

https:https:const list = ref([]);

https:const addComp = https:async () => {
  https:const VueDemo = https:await https:import(https:/* @vite-ignore */https:`http://cdn/components/vue-demo.esm.js`)
  https:window.app.component(https:'vue-demo', VueDemo.default);
  list.value.push({ https:key: https:new https:Date().valueOf(), https:name: https:'vue-demo' });
}

https:vite 配置https:

需要注意的是要保证本地开发时引入的 vue也是远程的,所以需要在 vite 的配置文件中增加 alias 配置。

https:https:// vite.config.js
https:import { defineConfig } https:from https:'vite';
https:import vue https:from https:'@vitejs/plugin-vue';

https:// https://vitejs.dev/config/
https:export https:default defineConfig({
  https:plugins: [vue()],
  https:resolve: {
    https:alias: {
      https:'vue': https:'https://cdn.jsdelivr.net/npm/vue@3.2.37/dist/vue.esm-browser.js'
    }
  }
})

https:缺点https:

  1. 兼容性问题:很多 Webpack 已经支持很好的功能还没有得到主流浏览器的支持
  2. 对很多第三方依赖的转化处理不完善,缺失完善的解决机制。要将第三方依赖的加载全部交给浏览器本身来接管,那么首先开发工具要做的就是将第三方依赖全部转换为 ESModule 的模块,而现在 npm 上的绝大部分包都是只支持 CommonJS 版本的,因此这里的转换过程通常需要由开发者自己来接管,而这其中有很多底层的问题并没有得到好的解决。同时,在 ESModule 规范推进的过程中,有许多如 exports.defaultexports.__esModule等利用语法来兼容 ESModule 和 CommonJS 的废案往往也都被 babel 实现,而且被许多开发者使用并且发布到了 npm 上,这就导致了现在 npm 上的许多包中有大量的废弃兼容性代码,而这些代码往往会对开发工具的转化造成阻碍。

https:优点https:

  1. 真正的按需加载
  2. 代码上更加优雅

https:关于 Webpack 模块联邦https:

基于笔者对模块联邦的了解,笔者认为 Webpack 的模块联邦,目前更加适合微前端的场景,但是不太适用于低代码平台的场景。但是笔者对 webpack 模块联邦了解不够深入,判断不一定准确,欢迎有不同意见的小伙伴在评论区讨论。

https:结论

对比上面三个方案,方案一实现起来最简单,但是没有真正实现按需加载,随着项目规模和需要满足的业务场景的扩大,组件的公共依赖会越来越多。方案二 、方案三 都能实现真正的按需加载,其中 require.js 虽然听上去已经是上个世纪的东西了,但是兼容性和坑相对比较少。说到 ESModule, 虽然有兼容性和上面提到的一些格式转化的问题,但随着近些年 Vite 、Snowpack 的发展,在未来 ESModule 一定是大势所趋,目前笔者也正在将负责的我司内部大屏低代码平台改造为 ESModule 方式加载。

https:参考

  • requirejs 中文文档 [https://www.requirejs-cn.cn/]
  • ESModule 系列 ㈠ :演进 [https://mp.weixin.qq.com/s/0AHmP70HnLUZeJWQlRtUKw]
  • Require.js 加载 css 依赖 [https://blog.csdn.net/lihefei_coder/article/details/81333036]

标签:组件 加载 代码
最近对前端构建工具的一些理解
« 上一篇 2022-08-10
救火分享:记一次K8s控制平面排障的血泪经历!
下一篇 » 2022-08-10
  • 如何在Ubuntu中保留文件系统并备份当前开发板镜像
    0阅读 0条评论 个赞
    在Ubuntu保留文件系统或者说备份当前开发板镜像的需求在不断增加。比如Ubuntu文件系统需要安装库文件的话直接使用apt-get工具就可以下载,但由于需要下载的核心板较多,比较费时间,这时需要将安……
  • 国产核心板全志T507助力消防系统升级
    0阅读 0条评论 个赞
    9月16日下午,位于湖南长沙市区内的中国电信大楼发生火灾,建筑高度218米,现场浓烟滚滚,数十层楼体燃烧剧烈。消防救援人员赶到现场后很快将火势控制住,目前大楼火势已被扑灭,所幸未发现人员伤亡。湖南电信……
  • 教大家如何处理Spring Boot易流中的用户和群体!
    0阅读 0条评论 个赞
    1.准备工作2.用户操作2.1添加用户2.2修改用户2.3删除用户2.4查询用户3.组操作3.1添加组3.2修改组3.3删除组3.4查询组4.查看表详情虽然说我们在实际开发中,……
  • 从PG15开始WAL压缩优化
    0阅读 0条评论 个赞
    PG15传闻中的超级令人激动的功能大多数跳票了,年初我也写过一个关于PG15新功能跳票的文章。PG15BETA已经发出几个月了,似乎PG15里令人激动人心的功能不多,不过从长长的新功能列表里,……
  • 深入了解美团叶子发射器开源方案
    0阅读 0条评论 个赞
    大家好,我是树哥。之前我们有聊过「如何设计一个分布式ID发号器」,其中有讲过4种解决方案,分别是:UUID类雪花算法数据库自增主键Redis原子自增美团以第2、3种解决方案为基础,开发出……
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
  • 面试问题:Java序列化和反序列化
    0阅读 0条评论 个赞
    目录序列化和反序列化的概念应用场景?序列化实现的方式继承Serializable接口,普通序列化继承Externalizable接口,强制自定义序列化serialVersionUID的作用静态变量不会……
  • 内存泄漏——原因、避免和位置
    0阅读 0条评论 个赞
    .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
  • Oracle服务器迁移的一些经验
    3阅读 0条评论 个赞
    前言通过此文章来分享一下Oracle服务器迁移过程中的一些经验,希望对大家有些许帮助。本文旨在帮助更多的同学,会提及一些基本命令或技巧,但不赘述,后续有机会再进一步分享各个细节。背景之前因机房迁移……
  • 三万字肝爆《数据仓库体系》
    0阅读 0条评论 个赞
    文章很长,前言一定要看拥有本篇文章,意味着你拥有一本完善的书籍,本篇文章整理了数据仓库领域,几乎所有的知识点,文章内容主要来源于以下几个方面:源于「数据仓库交流群」资深数据仓库工程师的交流讨论,如《s……
  • 如何获取Yarn和Spark UI的界面索引信息
    1阅读 0条评论 个赞
    .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
  • SQL Server表变量和临时表的区别
    0阅读 0条评论 个赞
    一、表变量表变量在SQLServer2000中首次被引入。表变量的具体定义包括列定义,列名,数据类型和约束。而在表变量中可以使用的约束包括主键约束,唯一约束,NULL约束和CHECK约束(外键……
  • Sql Server系列:分区表操作
    0阅读 0条评论 个赞
    1.分区表简介分区表在逻辑上是一个表,而物理上是多个表。从用户角度来看,分区表和普通表是一样的。使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性。分区表是把数据……
  • 2022数字技能职业教育生态研讨会
    9阅读 0条评论 个赞
    职业教育是国民教育体系和人力资源开发的重要组成部分。发展职业教育,已经成为世界各国应对经济、社会、人口、环境、就业等方面挑战,实现可持续发展的重要战略选择。中国职业教育源远流长,师徒制教学有着悠久的……
  • Java开发学习(29)——Maven依赖转移、可选依赖和排除依赖分析
    0阅读 0条评论 个赞
    现在的项目一般是拆分成一个个独立的模块,当在其他项目中想要使用独立出来的这些模块,只需要在其pom.xml使用标签来进行jar包的引入即可。其实就是依赖……
  • SpringMVC 03: 请求和响应的乱码解决 + SpringMVC响应Ajax请求
    1阅读 0条评论 个赞
    请求或响应的中文乱码问题tomcat9解决了get请求和响应的中文乱码问题,但是没有解决post请求或响应的中文乱码问题tomcat10解决了get和post请求以及响应的中文乱码问题考虑到实际项目中……
  • 新一代网络请求库:python-httpx库
    0阅读 0条评论 个赞
    目录httpx库一、概述1、简介2、命令行模式3、快速开始3.1get请求3.2post请求3.2.1表单3.2.2文件3.2.3JSON3.2.4二进制3.3响应处理3.4流……
  • 我们能从AlloyDb的架构中学到什么
    0阅读 0条评论 个赞
    前些天我发了一篇解读信通所分布式数据库发展报告内容的文章,有些朋友对我把Aurora、AlloyDB、PolarDB等也归类于分布式数据库感到有些不解。实际上这是信通所在报告里的归类,和国际上的常见归……
  • 高手面试一个人 问4个问题就够了
    0阅读 0条评论 个赞
    作者|Mr.K编辑|Emma来源|技术领导力(ID:jishulingdaoli)金九银十求职季又要来了。据统计,今年的应届毕业生已破千万,加上社会面存量人才,相信今年的人才季的热度,不会低于今年……
  • 教你如何构建JAVA分布式爬虫
    0阅读 0条评论 个赞
    在工作中,我们经常需要去获取一些数据,但是这些数据可能需要从第三方平台才可以获取到。这个时候,爬虫系统就可以帮助我们来完成这些事情。提到爬虫系统,很多人都会想到使用python。但实际上,语言只……
  • 谈谈我是如何学习SQL Server的
    0阅读 0条评论 个赞
    谈谈我是如何学习SQLServer的相信很多人都想做大牛,但是你们知道这些大牛是怎样炼成的吗?我的一个同事做了差不多10年的.NET开发,算得上是大牛了吧?如果他遇到他熟悉的项目很快就能手到拿来,立……
  • 金牛座入门 MVC微服务框架开发教程:项目部署:4 微服务应用发布到Docker进行部署
    0阅读 0条评论 个赞
    前言:本篇教程,演示ASP.NETCore微服务应用程序,如何最简方式发布到Docker中部署,并运行起来。新手两个简易概念:1、映像:可以理解为Class,用于定义;2、容器:可以理解为Clas……
  • Go语言知识|基本数据类型
    0阅读 0条评论 个赞
    前言学习Go半年之后,我决定重新开始阅读《TheGoProgramingLanguage》,对书中涉及重点进行全面讲解,这是Go语言知识查漏补缺系列的文章第二篇,前一篇文章则对应书中一二两章。我……
  • 一个没有写代码的案例 让我们看看Flowable为我们提供了哪些功能
    3阅读 0条评论 个赞
    其实松哥之前已经写过文章和大家介绍了flowable-ui的玩法了,这是官方提供的一个工具,这个工具不仅可以用来绘制流程图,还可以用来部署一个流程应用,通过这个流程应用我们可以体验一把flowa……
  • 全网最全Linux命令汇总!(史上最全 推荐收藏)
    7阅读 0条评论 个赞
    今天,给小伙伴们带来一篇史上最全Linux命令总结的文章,命令有点多,建议小伙伴们先收藏后阅读。好了,我们开始今天的正文。列出目录内容ls-a:显示所有文件(包括隐藏文件);ls-l:显示详细……
  • 适时变革 共创未来| 2022数字技能职业教育生态研讨会圆满落幕
    0阅读 0条评论 个赞
    2022年8月25日,由恒利联创主办的“适时而变,联创未来”2022数字技能职业教育生态研讨会在线上举行。本届大会围绕“数字技能职业教育和数字化人才培养”的话题,邀请了Oracle技术人才发展部总经理……
  • 这家小贷公司涉嫌不吸费被立案!
    0阅读 0条评论 个赞
    近日,甘肃平凉市泾川县公安局发布一则征集犯罪线索的通告,案件涉及泾川县财源小额贷款有限责任公司非法吸收公众存款案。据警方透露,2013年至2020年期间,泾川县财源小额贷款有限责任公司违反国家金融管理规定,通过口口相传、以月利息一分钱的方式向社会不特定对象吸收资金,目前,该案已立案侦查。……
  • 《六天一万个天花》 一个夏令营被家长抢光的几率有多少?
    0阅读 0条评论 个赞
    广阔的草原和山林间,阳光映照下的芦苇丛边,一群孩子开启了他们在营地里的一天:通过艺术手工、射箭、音乐、野炊、话剧、科学与自然等主题活动,尽情地探……
  • Java核心知识系统4: AOP原理和部分应用
    0阅读 0条评论 个赞
    1概述我们所说的Aop(即面向切面编程),即面向接口,也面向方法,在基于IOC的基础上实现。Aop最大的特点是对指定的方法进行拦截并增强,这种增强的方式不需要业务代码进行调整,无需侵入到业务代码中,……
  • 捷信消费金融今年已执行四次:更换监事被被告曝因裁员 跌势未止
    0阅读 0条评论 个赞
    天眼查APP显示,9月9日,捷信消费金融出现主要成员变更,监事Christoph Glaser退出,新增法国籍人士Frederic Jacques Claude Tardy接任,任职截止日期为2025年2月21日。另值得注意的是,9月2日,捷信消费金融因一起与方某某的名誉权纠纷案被列为被执行人。金融虎网注意到,今年下半年以来,捷信消费金融已经四次被列为被执行人。……
  • 银监会:截至二季度末 保险业专属商业养老保险保费约22亿元 呈快速增长态势
    0阅读 0条评论 个赞
    银保监会相关负责人表示,规则Ⅱ建设工作于2017年9月启动,以引导保险业回归保障本源、专注主业,增强服务实体经济能力,有力有效防范保险业风险,加大加快金融业全面对外开放为目标,对原有偿付能力监管规则进行全面优化升级。……
  • 两平台不吸收案新进展:无资产待清退 结案!
    0阅读 0条评论 个赞
    河南省博沃新能源科技发展有限公司非法集资案、河南省汇银实业有限公司涉嫌非法吸收公众存款案两个公司分别经司法机关审查均无可清退资产,现予以结案。……
  • 什么是百度权重?字数和SEO权重有关系吗?
    0阅读 0条评论 个赞
    提到SEO就绕不开百度权重的问题,什么是百度权重,百度权重越高越好吗。怎么才能提高百度权重,下面让我们了解一下百度权重。首先需要指出一点,百度权重不是“百度官方”提出的概念。……
  • 中原消费金融上半年实现营收14.65亿元 同比下降6.27% 期间新增贷款余额48.39亿元
    0阅读 0条评论 个赞
    上半年中原消费金融放款突破690.44万笔,累计放款突破5740.97万笔,新增客户数191.81万户,累计为1709.60万客户提供消费金融服务。……
  • 东方精选“自力更生” 直播不是企业转型的终点
    14阅读 0条评论 个赞
    热搜来的迅猛,去的也快,东方甄选在经历了爆火之后,逐渐没了什么新闻。但其实这是一个比较好的研究时机。根据东方甄选2022年的半年报显示,在六月份……
  • 化妆品代理商如何进行网络营销?
    0阅读 0条评论 个赞
    化妆品代理商如何进行网络营销?随着美容市场竞争的加剧,化妆品代理商迫切需要有效的营销手段来满足发展需求,如今,互联网已经成为最大的媒体平台。大多……
  • 内存泄漏——原因、避免和位置
    0阅读 0条评论 个赞
    .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
  • 恒天财富2022年上半年净利润同比大降87% 新湖财富营收下降22%
    0阅读 0条评论 个赞
    2022年上半年,恒天财富营收较去年同期的26.5亿元同比下降29%,净利润较去年同期的3.5亿元同比大降87%。新湖财富营业收入较去年同期的15.63亿元同比下降21.8%,净利润较去年同期的1.67亿元同比下降6.6%。……
  • 历史转折中的电商代理运营3354从隐形英雄到前台
    0阅读 0条评论 个赞
    近期,各大上市公司相继披露半年报,电商代运营行业的几家头部服务商也交出了各自答卷。电商代运营,作为协同品牌方、电商平台与消费者关系的纽带,是消费……
  • 中国人吃“第一个粽子”用了一百年
    0阅读 0条评论 个赞
    元宵吃汤圆、端午吃粽子、中秋吃月饼、除夕吃饺子,每每佳节各有各的代表美食,就连二十四节气也有不同的吃法,立春有春卷、清明有青团、夏至有馄饨、立冬……
  • SEO文章和外链平台的均衡更新计划怎么样?
    0阅读 0条评论 个赞
    建站初期我们常常为了追求“快速排名”而开启疯狂的更新模式,慢慢的我们发现可写的内容越来越少,为了避免这种窘况发生,我们需要给自己制定一个文章均衡更新计划。……
  • 易车高管被举报挪用公款婚内出轨 回应:正在进行内部调查
    11阅读 0条评论 个赞
    易车全国销售总监妻子向腾讯、易车管理层递交长达五页的公开实名举报信,举报其丈夫戴闻以权谋私、侵吞巨款,婚内出轨、PUA妻子,据她估计,侵吞总金额达数百万。对此,易车方面发布声明称,近日,我司收到举报信件,反映易车某员工存在不当行为。我司正在对此展开内部正式调查。我司一贯对涉及违法违规,以及违反公司规章制度的行为零容忍。一经查实,将依法依规严肃处理。……
  • 疫情期间你的现金流健康吗?
    0阅读 0条评论 个赞
    “VUCA”即 Volatile,Uncertain,Complex,Ambiguous。今年上半年加剧的疫情给很多企业踩了一个急刹车,企业的收……
  • 给自己制定一个SEO标准:做好本地SEO优化
    23阅读 0条评论 个赞
    人的一些操作常常会随着“心情”与“当前认知”的变化而变化。比如我、心情好的时候写文章会认真一些,心情不好的时候写文章会敷衍一些。有时间的时候就疯狂更新 ,没有时间的时候就不更新。……
  • 保险备份 100亿美元出售 海洋上半年亏损
    0阅读 0条评论 个赞
    躲过了“违约”,却没能躲过“亏损”。作者 | 卢泳志编辑丨高岩来源 | 野马财经背靠两大“国姓”险资股东,远洋集团(3377.HK)上半年保持了……
  • web端pdf编辑能力的设计与实践
    0阅读 0条评论 个赞
    本期作者顾伊凡哔哩哔哩资深开发工程师2021年加入B站,负责UP主创作激励、收益中心、电子签约平台前端建设。本文将从业务场景与技术实现等角度对“web端pdf编辑能力”进行基本的介绍。01背景B站电……
最近发布资讯
更多