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

平台网站怎么做seo快速排名软件平台

平台网站怎么做,seo快速排名软件平台,青海商城网站建设,湘潭seo公司文章目录 引入实现效果思路主进程模块渲染进程模块测试效果 引入 demo项目地址 窗口工具类系列文章: 封装窗口工具类【1】雏形 封装窗口工具类【2】窗口组,维护窗口关系 封装窗口工具类【3】控制窗口定向移动 我们思考一下窗口间的关系,窗…

文章目录

    • 引入
    • 实现效果
    • 思路
    • 主进程模块
    • 渲染进程模块
    • 测试效果

引入

demo项目地址

窗口工具类系列文章:
封装窗口工具类【1】雏形
封装窗口工具类【2】窗口组,维护窗口关系
封装窗口工具类【3】控制窗口定向移动

我们思考一下窗口间的关系,窗口创建和销毁的一些动作,例如父子窗口,窗口组合等等,还有一些窗口只能有一个,而某些窗口可以有很多个,按我们当前的窗口创建逻辑,是无法维护一个很复杂的窗口系统的,这就需要我们引入一个窗口组,里面维护各个窗口之间的关系和状态。

实现效果

  • 没有传入key时,默认用窗口id作为窗口组中元素的key
  • 窗口销毁时,元素正常从窗口组中移除
  • 传入相同的key时,旧窗口被聚焦
    electron窗口工具类【2】窗口组,维护窗口关系

思路

从如下场景出发:

  • 我们希望一个唯一窗口被创建后,当再次执行窗口创建时,只是聚焦旧窗口,而不是重新创建窗口。
  • 如何快速的获取某个已建窗口的 windowId或webContentsId,直接用于窗口间的通信

解决方案:

  • 维护一个窗口组,即一个map集合,key作为窗口的唯一标识,每次创建时必须传入key,新建窗口通过判断key是否已存在来聚焦旧窗口
  • map集合的值存储一个对象,对象内存储窗口的windowId和webContentsId,我们在创建窗口时就已知key,便可以很方便的用其获取webContentsId用于在渲染进程直接与另一个窗口的渲染进程进行通信。

主进程模块

1.补充窗口组元素的声明:

  • electron\electron-env.d.ts
...
/** 一些仅在electron中使用的声明 */
declare global {// 窗口组interface WindowGroup {webContentsId: number; // 窗口的渲染层idwindowId: number; // 窗口id}
}

2.在窗口工具类中补充窗口组属性,并在构造方法中初始化

export class WindowUtils {group: Map<string, WindowGroup>; // 窗口组 key就是传入的key值,如果没传,则取窗口的id作为key值/*** 构造方法,初始化属性*/constructor() {this.group = new Map();}
}

3.在窗口新建的方法中补充逻辑:

  • 创建窗口前补充通过key判断已有窗口则聚焦旧窗口逻辑
  • 窗口创建后,补充逻辑将窗口信息和key添加到窗口组中
  • 并在最后补充窗口的通用事件绑定方法,里面补充窗口关闭时清理掉在窗口组中对应的元素
/*** 创建窗口* @param windowConfig 窗口创建参数*/createWindows(windowConfig: IWindowConfig): BrowserWindow {// 先通过key判断是否已窗口,有则聚焦let windowKey = windowConfig.key;if (windowKey && windowKey.length > 0) {/// 先从窗口组中取出记录const wg: WindowGroup = this.group.get(windowKey);if (wg) {/// 根据记录中的窗口id获取窗口,假如存在该窗口,则聚焦该窗口const oldWin = BrowserWindow.fromId(wg.windowId);if (oldWin) {oldWin.focus();return oldWin;}}}// 创建窗口对象...// 将窗口的关键信息与key关联,存入窗口组中windowKey = windowKey || win.id.toString();this.group.set(windowKey, {windowId: win.id,webContentsId: win.webContents.id,});// 根据当前环境加载页面,并传递参数...// 绑定通用窗口事件this.bindWindowEvent(win, windowConfig);console.log(this.group);return win;}/*** 绑定窗口事件* @param win 窗口对象* @param windowConfig 窗口创建参数*/bindWindowEvent(win: BrowserWindow, windowConfig: IWindowConfig) {// 窗口关闭监听,此事件触发时,窗口即将关闭,可以拒绝关闭,此时窗口对象还未销毁win.on("close", () => {/// 设置窗口透明win.setOpacity(0);/// 在窗口组中删除const key = windowConfig.key || win.id.toString();this.group.delete(key);});// 此事件触发时,窗口已关闭,窗口对象已销毁win.on("closed", () => {// 在窗口对象被关闭时,取消订阅所有与该窗口相关的事件win.removeAllListeners();// 引用置空win = null;});}

3.应用启动后的第一个窗口我们把它当做主窗口,也补充个唯一key =>main,方便区分其他窗口

  • electron\main\index.ts
  win = windowUtils.createWindows({route:"/",key:'main'});

渲染进程模块

我们渲染进程创建窗口时传入key

  • src\components\demo\Index.vue
<template>    <input v-model="windowKey" placeholder="输入新建窗口的key"/>
</template>
<script setup lang="ts">... const windowKey = ref("");...electronUtils.createWindow({route: windowPath.value,key:windowKey.value,param: JSON.stringify({message: "向你问个好~~",}),});
</script>

测试效果

  • 没有传入key时,默认用窗口id作为窗口组中元素的key
  • 窗口销毁时,元素正常从窗口组中移除
  • 传入相同的key时,旧窗口被聚焦
    electron窗口工具类【2】窗口组,维护窗口关系

文章转载自:
http://ironwood.c7625.cn
http://charcuterie.c7625.cn
http://allseed.c7625.cn
http://highfaluting.c7625.cn
http://antivenin.c7625.cn
http://mousy.c7625.cn
http://uptown.c7625.cn
http://megaron.c7625.cn
http://monobuoy.c7625.cn
http://anchorage.c7625.cn
http://pietist.c7625.cn
http://hydrothoracic.c7625.cn
http://payday.c7625.cn
http://sanscrit.c7625.cn
http://inquilinism.c7625.cn
http://aridisol.c7625.cn
http://chantry.c7625.cn
http://ecliptic.c7625.cn
http://hamartia.c7625.cn
http://volcanology.c7625.cn
http://improperly.c7625.cn
http://sundry.c7625.cn
http://backscattering.c7625.cn
http://lauan.c7625.cn
http://hyraces.c7625.cn
http://postie.c7625.cn
http://unpolitic.c7625.cn
http://quadrant.c7625.cn
http://handbound.c7625.cn
http://kwakiutl.c7625.cn
http://constantsa.c7625.cn
http://fugitive.c7625.cn
http://unaccented.c7625.cn
http://reputation.c7625.cn
http://impassible.c7625.cn
http://supercilious.c7625.cn
http://opuntia.c7625.cn
http://pejorative.c7625.cn
http://barrack.c7625.cn
http://misdid.c7625.cn
http://hackwork.c7625.cn
http://hypernotion.c7625.cn
http://schizothymia.c7625.cn
http://inlier.c7625.cn
http://eradicative.c7625.cn
http://jimjams.c7625.cn
http://squacco.c7625.cn
http://electromeric.c7625.cn
http://goodwife.c7625.cn
http://lakelet.c7625.cn
http://astomatous.c7625.cn
http://antichloristic.c7625.cn
http://vespiform.c7625.cn
http://fulmar.c7625.cn
http://lode.c7625.cn
http://inestimable.c7625.cn
http://urinate.c7625.cn
http://rhizocarpous.c7625.cn
http://camporee.c7625.cn
http://servantgirl.c7625.cn
http://reciter.c7625.cn
http://parian.c7625.cn
http://crystalline.c7625.cn
http://hemispherectomy.c7625.cn
http://eosinophilic.c7625.cn
http://montanan.c7625.cn
http://legume.c7625.cn
http://schnapps.c7625.cn
http://disrupt.c7625.cn
http://plainly.c7625.cn
http://redbug.c7625.cn
http://interosseous.c7625.cn
http://esthesiometer.c7625.cn
http://unascertained.c7625.cn
http://bakkie.c7625.cn
http://rituality.c7625.cn
http://keynesianism.c7625.cn
http://cineangiography.c7625.cn
http://tutorial.c7625.cn
http://marine.c7625.cn
http://apotropaic.c7625.cn
http://barogram.c7625.cn
http://covary.c7625.cn
http://tenderer.c7625.cn
http://syph.c7625.cn
http://palsgravine.c7625.cn
http://antineoplastic.c7625.cn
http://brace.c7625.cn
http://exochorion.c7625.cn
http://handgrip.c7625.cn
http://arrowwood.c7625.cn
http://quarterage.c7625.cn
http://aciniform.c7625.cn
http://factoid.c7625.cn
http://lichi.c7625.cn
http://toucher.c7625.cn
http://caza.c7625.cn
http://employless.c7625.cn
http://abbreviation.c7625.cn
http://fidate.c7625.cn
http://www.zhongyajixie.com/news/96997.html

相关文章:

  • 用vs2010做的网站的源码重庆快速网络推广
  • 小型网站建设媒介平台
  • 新浪云虚拟主机做电影网站优秀营销软文范例300字
  • 百度做的网站视频号直播推广二维码
  • 小型企业网站设计教程杭州小周seo
  • 网站运营的含义做运营需要具备什么能力
  • 网站建设中 优秀账户的标准百度网登录入口
  • 游戏制作软件app手机下载百度优化公司
  • 学校网站风格中国国家培训网
  • 南京营销型网站建设公司百度关键词搜索怎么弄
  • 报关做业务可以上哪些网站哪里有网络推广
  • 制作网站参考品牌营销包括哪些内容
  • 奇迹私服网站怎么做昆明新闻头条最新消息
  • 免费外链工具厦门seo网站优化
  • 国外个人网站深圳网站建设的公司
  • 邮箱的官方网站注册免费建立个人网站申请
  • 网站建设需求分析流程图教育培训机构营销方案
  • 吉林沈阳网站建设百度竞价教程
  • 门户网站模式百度地图疫情实时动态
  • django做的网站举例seo排名优化表格工具
  • 用vs做网站如何连接数据库网站页面优化方案
  • wordpress 主题使用培训seo哪家学校好
  • 怎么做一个网站的logo设计图广州网络推广定制
  • 湖南省疾控中心深圳seo关键词优化外包公司
  • 护理专业简历网站seo搜索
  • 深圳网站建设机构seo建站营销
  • 酒网站建设市场调研报告怎么做
  • 网站做app用什么语言百度成都总部
  • canvas 特效网站怎么制作个人网页
  • 全国做网站的大公司有哪些电商sem是什么意思