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

新型门窗网站模板商河做网站多少钱

新型门窗网站模板,商河做网站多少钱,网页制作与设计教案,传统网站开发Hvigor允许开发者实现自己的插件#xff0c;开发者可以定义自己的构建逻辑#xff0c;并与他人共享。Hvigor主要提供了两种方式来实现插件#xff1a;基于hvigorfile脚本开发插件、基于typescript项目开发。下面以基于hvigorfile脚本开发插件进行介绍。 基于hvigorfile脚本…Hvigor允许开发者实现自己的插件开发者可以定义自己的构建逻辑并与他人共享。Hvigor主要提供了两种方式来实现插件基于hvigorfile脚本开发插件、基于typescript项目开发。下面以基于hvigorfile脚本开发插件进行介绍。 基于hvigorfile脚本开发 基于hvigorfile.ts脚本开发的方式其优点是可实现快速开发直接编辑工程或模块下hvigorfile.ts即可编写插件代码不足之处是在多个项目中无法方便的进行插件代码的复用和共享分发。 导入模块依赖。 // 导入接口 import { HvigorPlugin, HvigorNode } from ohos/hvigor编写插件代码。 在hvigorfile.ts中定义插件方法实现HvigorPlugin接口。 // 实现自定义插件 function customPlugin(): HvigorPlugin {return {pluginId: customPlugin,apply(node: HvigorNode) {// 插件主体console.log(hello customPlugin!);}} }在导出声明中使用插件。 export default {system: appTasks,plugins:[customPlugin() // 应用自定义Plugin] }使用hvigorfile插件动态生成navigation防混淆文件 我们在使用navigation的系统路由表时每次添加新页面都需要配置一下release环境防混淆。若将这些页面放在一个固定的目录下则与我们的模块化设计相违背若命名使用固定的前缀或后缀总感觉有点多余手动一个一个的添加虽然符合我们的代码规范设计但就是有点繁琐。有没有更方便的方式来处理这个混淆配置呢 其实我们可以在写一个hvigorfilew插件来自动生成混淆配置文件。我们自定义一个HvigorPlugin任务通过OhosHapContext对象读取module.json5文件中的routerMap字段可以获取系统路由表的名称再读取profile目录下的路由表。解析json文件内存并将页面路径写到一个混淆文件中这样每次编译时自动生成防混淆文件我们只需要引入这个文件就可以了。示例如下 import { hapTasks, OhosHapContext, OhosPluginId } from ohos/hvigor-ohos-plugin import { HvigorPlugin, HvigorNode, FileUtil } from ohos/hvigorfunction parseRouterMap(): HvigorPlugin {return {pluginId: parseRouterMap,apply(node: HvigorNode) {const hapCtx node.getContext(OhosPluginId.OHOS_HAP_PLUGIN) as OhosHapContextconst moduleJson hapCtx.getModuleJsonOpt()const routerMapName moduleJson[module][routerMap].split(:)[1]const dir hapCtx.getModulePath()const srcFile FileUtil.pathResolve(dir, src, main, resources, base, profile, ${routerMapName}.json)const json FileUtil.readJson5(srcFile)const routerRuleFile FileUtil.pathResolve(dir, obfuscation-router.txt)FileUtil.ensureFileSync(routerRuleFile)const routerMapArray json[routerMap]let rules -keep-file-name\nfor (const element of routerMapArray) {const pageSourceFile element[pageSourceFile]const path pageSourceFile.substring(0, pageSourceFile.lastIndexOf(.))rules ${path}\n}FileUtil.writeFileSync(routerRuleFile, rules)}} }export default {system: hapTasks,plugins:[parseRouterMap()] }编译后会在entry目录下生成obfuscation-router.txt防混淆文件只要引入这个文件就可以了。 使用hvigorfile插件动态生成navigation页面枚举名称 我们在我们navigation的push跳转到新页面时都得提前定义好系统路由表中的页面name因为使用的name与系统路由表中定义的name不相同时跳转页面则会白屏。有了前面的经验其它我们也可以动态生成一个ets文件将系统路由表中的页面名称自动生成一个枚举这样就不用每次配置系统路由表还是复制一下名称了。例如我们的系统路由表是这样的 {routerMap: [{name: dialog,pageSourceFile: src/main/ets/pages/dialog/DialogPage.ets,buildFunction: dialogBuilder},{name: web,pageSourceFile: src/main/ets/pages/web/WebPage.ets,buildFunction: webBuilder},{name: login,pageSourceFile: src/main/ets/pages/login/LoginPage.ets,buildFunction: loginBuilder}] }我们现在实现一个hvigorfile插件来解析系统路由表中的name字段并生成对应的枚举值。示例如下 import { hapTasks, OhosHapContext, OhosPluginId } from ohos/hvigor-ohos-plugin import { HvigorPlugin, HvigorNode, FileUtil } from ohos/hvigorfunction parseRouterMap(): HvigorPlugin {return {pluginId: parseRouterMap,apply(node: HvigorNode) {const hapCtx node.getContext(OhosPluginId.OHOS_HAP_PLUGIN) as OhosHapContextconst moduleJson hapCtx.getModuleJsonOpt()const routerMapName moduleJson[module][routerMap].split(:)[1]const dir hapCtx.getModulePath()const srcFile FileUtil.pathResolve(dir, src, main, resources, base, profile, ${routerMapName}.json)const json FileUtil.readJson5(srcFile)const routerMapFile FileUtil.pathResolve(dir, src, main, ets, Pages.ets)FileUtil.ensureFileSync(routerMapFile)const routerMapArray json[routerMap]let ss for (const element of routerMapArray) {const name element[name]ss ${name} ${name},\n}ss export enum Pages {\n${ss}}FileUtil.writeFileSync(routerMapFile, ss)}} }export default {system: hapTasks,plugins:[parseRouterMap()] }我们在ets目录下生成了一个Pages.ets文件并将所有navigation页面生成对应的枚举值页面跳转时使用这些枚举值就不怕出错了。Pages.ets内容如下 export enum Pages {dialog dialog,web web,login login, }
http://www.hkea.cn/news/14400514/

相关文章:

  • 网站开发推荐一本书免费电商网站建设平台
  • 企业网站建设一般考虑哪些因素?h5制作免费素材
  • 网站开发要考什么证wordpress 删除作者
  • 手机免费制作网站深圳网站建设网站制作公司
  • 网站的页头页脚怎么做玩具外贸好做吗
  • 网站名称格式卡一卡二卡四老狼
  • 金融网站建设银行python做网站多少钱
  • 怎么做网站的后台做进化树的在线网站
  • 做网站的公司为什么人少了单位网站建设费算无形资产吗
  • 重庆企业网站建设官网湖南郴州建设局网站
  • 网站建设管理情况报告电信 网站备案
  • 昆山建设工程招聘信息网站图片编辑器在线
  • 涿州市网站建设网页游戏传奇盛世2
  • 哪个公司做网站专业顶呱呱集团 网站建设
  • h5网站动画怎么做的免费制作个人网页
  • 商业网站建设与运营wordpress插件没有设置
  • 江苏省城乡建设官网站陕西网站建设
  • 做会员体系的网站网站建设中哪些最重要
  • 广东网站建设发信息怎么查网站的所有权
  • 重庆建设厅网站公示公告栏seo快速排名利器
  • 网站正能量晚上不用下载直接进入工作简历模板免费下载
  • 网站开发的app宁波市内做公司网站的公司
  • 建站源码程序商城网站建设实例需求
  • 太平洋网站建设淮安做网站.哪家网络公司好?
  • 江苏天宇建设集团官方网站万网搜
  • 一个网站设计的费用手机网站制作哪家好
  • seo网站推广佛山微梦网站建设
  • 婚纱网站制作山西响应式网站建设制作
  • 跨境电商怎么做视频教程360搜索怎么做网站自然优化
  • 杰奇怎么做网站地图网站开发工程师的职责