成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基于Electron開(kāi)發(fā)Hosts切換工具的“踩坑”之旅

開(kāi)發(fā) 前端
最近幾年Electron忽然火了起來(lái),也誕生了很多好用的應(yīng)用。Electron本身是基于Chromium和Node.js,讓你可以使用 HTML, CSS 和 JavaScript 構(gòu)建應(yīng)用。

用過(guò)好幾個(gè)Hosts切換工具,但總是有點(diǎn)這樣那樣的問(wèn)題。最討厭的莫過(guò)于切換完后,鍵盤(pán)都快按壞了,瀏覽器里面的Hosts就是不變,網(wǎng)上找了好多方法,但是感覺(jué)都并不完美,于是就有了這篇文章。

Electron

說(shuō)起桌面應(yīng)用,以前一直想開(kāi)發(fā)個(gè)跨平臺(tái)的應(yīng)用,學(xué)習(xí)了一下Qt,偷了一些QQ的素材,整了個(gè)簡(jiǎn)單的IM,但是迫于C++基本屬于語(yǔ)法入門(mén)階段,寫(xiě)個(gè)東西是真費(fèi)勁。

最近幾年Electron忽然火了起來(lái),也誕生了很多好用的應(yīng)用。Electron本身是基于ChromiumNode.js,讓你可以使用 HTML, CSS 和 JavaScript 構(gòu)建應(yīng)用。簡(jiǎn)單來(lái)說(shuō)就是瀏覽器的殼子,里面套HTML頁(yè)面,但是擁有了瀏覽器之外的能力。作為PHP程序員,肯定會(huì)點(diǎn)JavaScript,也可以假裝會(huì)點(diǎn)Node.js吧。

使用了各種第三方庫(kù)

electron-vue

Electron文檔大概看了一下,不知道如何下手,然后找到了electron-vue,幾行命令就可以幫你把項(xiàng)目初始化好了。

Element-UI

餓了么出品,基于Vue的UI組件庫(kù)。

CodeMirror

代碼編輯器插件神器,提供超級(jí)超級(jí)超級(jí)多的功能和配置。

chrome-remote-interface

Chrome調(diào)試協(xié)議的第三方調(diào)試客戶(hù)端實(shí)現(xiàn),為node程序提供了api,想要在Chrome中實(shí)時(shí)生效的關(guān)鍵工具就是它。

lowdb

名字雖然low,但是很好用。一個(gè)本地儲(chǔ)存的JSON數(shù)據(jù)庫(kù)(其實(shí)就是自己懶得操作JSON。)

坑來(lái)了

上面寫(xiě)了一大坨,基本全是介紹,下面才是我在開(kāi)發(fā)過(guò)程中,遇到的問(wèn)題,其實(shí)大部分都是自己學(xué)藝不精,沒(méi)有想清楚造成的。

主進(jìn)程 && 渲染進(jìn)程

Electron 應(yīng)用同時(shí)使用了 main(主進(jìn)程) 和一個(gè)或者多個(gè) renderer(渲染進(jìn)程) 來(lái)運(yùn)行多個(gè)程序。

開(kāi)發(fā)的時(shí)候并沒(méi)有想太多,等某些功能實(shí)現(xiàn)的時(shí)候懵逼了,比如托盤(pán)的菜單(main)在切換Hosts的時(shí)候,頁(yè)面(renderer)中的勾選狀態(tài)需要同步更新。這個(gè)時(shí)候才看文檔,發(fā)現(xiàn)人家提供了進(jìn)程間的ipc通信方法,造成了代碼邏輯的大量改動(dòng)和結(jié)構(gòu)優(yōu)化,如果你的應(yīng)用也有類(lèi)似功能,開(kāi)發(fā)之前一定要想清楚各種事件消息如何相互傳遞并且妥善管理。

不同的進(jìn)程從數(shù)據(jù)庫(kù)中獲取到的數(shù)據(jù)不一致

看了lowdb半天文檔,沒(méi)整明白。不就是讀文件么,都寫(xiě)成功(同步方式)了,別的進(jìn)程就是讀不出來(lái)呢?初步懷疑,數(shù)據(jù)在內(nèi)存中存了一份兒(同步機(jī)制不詳)。忽然發(fā)現(xiàn)lowdb的一句介紹提到了Lodash(我并不知道這是啥),看了一下才明白const db = low(adapter)返回的是一個(gè)Lodash實(shí)例,只有當(dāng)觸發(fā)write()和read()的時(shí)候才真正的去操作文件,單進(jìn)程的話(huà)沒(méi)什么問(wèn)題,但是多進(jìn)程就好操作數(shù)據(jù)不一致了,解決方法就是在讀取的時(shí)候先read()一下:db.read().get('hosts'),搞定。

目錄不存在

當(dāng)你興奮的把應(yīng)用傳給同事,結(jié)果人家一打開(kāi),一個(gè)大大的報(bào)錯(cuò)(一臉懵逼+尷尬),原來(lái)是app.getPath('userData')獲取到的目錄默認(rèn)并不存在,在操作前加目錄判斷,沒(méi)有就創(chuàng)建。

程序打包后,不能復(fù)制粘貼

網(wǎng)上查了一下,發(fā)現(xiàn)Mac程序內(nèi)如果需要復(fù)制粘貼,需要加到菜單中,代碼如下:

if (process.platform === 'darwin') {
const template = [
{
label: '我的應(yīng)用名稱(chēng)',
submenu: [
{
label: '退出',
accelerator: 'Command+Q',
click: () => {
app.quit()
}
}
]
},
{
label: '編輯',
submenu: [
{ label: '復(fù)制', accelerator: 'CmdOrCtrl+C', selector: 'copy:' },
{ label: '粘貼', accelerator: 'CmdOrCtrl+V', selector: 'paste:' }
]
}
]
Menu.setApplicationMenu(Menu.buildFromTemplate(template))
}
責(zé)任編輯:姜華 來(lái)源: 今日頭條
相關(guān)推薦

2022-09-17 23:46:47

vue前端

2024-04-01 08:05:27

Go開(kāi)發(fā)Java

2023-04-19 07:53:29

Node.jsNrm

2024-10-09 08:09:11

2018-12-18 14:13:30

SDKAndroid開(kāi)發(fā)

2015-09-07 10:15:53

移動(dòng)端開(kāi)發(fā)

2023-02-20 08:11:04

2024-04-10 08:39:56

BigDecimal浮點(diǎn)數(shù)二進(jìn)制

2023-01-18 23:20:25

編程開(kāi)發(fā)

2017-07-17 15:46:20

Oracle并行機(jī)制

2020-09-15 08:46:26

Kubernetes探針服務(wù)端

2023-10-19 15:35:44

.NET轉(zhuǎn)換工具開(kāi)發(fā)

2021-12-28 08:17:41

循環(huán) forgo

2024-11-26 08:20:53

程序數(shù)據(jù)歸檔庫(kù)

2018-01-10 13:40:03

數(shù)據(jù)庫(kù)MySQL表設(shè)計(jì)

2021-10-28 19:10:02

Go語(yǔ)言編碼

2017-05-05 08:12:51

Spark共享變量

2025-04-29 10:17:42

2009-03-25 17:10:50

Linux視頻轉(zhuǎn)換

2021-09-03 11:15:18

場(chǎng)景sql配置
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 婷婷综合 | 日韩一区二区三区在线观看 | av一区在线 | h视频免费在线观看 | 男女污污动态图 | 国产精品美女久久久久久久久久久 | 日韩成人| 九九热免费在线观看 | 免费观看一级特黄欧美大片 | 国产视频日韩 | 一级毛片中国 | 亚洲精品一区二区二区 | 噜噜噜噜狠狠狠7777视频 | 91精品国产综合久久久久蜜臀 | 嫩草黄色影院 | 精久久 | 欧美视频一区二区三区 | 国产精品一区二区在线播放 | 日本精品裸体写真集在线观看 | 91免费观看国产 | 国产精品一区二区在线 | 国产精品色综合 | 在线免费观看成年人视频 | 99精品一区二区 | 国产综合网址 | 小川阿佐美pgd-606在线 | 福利视频网站 | 国产韩国精品一区二区三区 | 日韩在线观看网站 | 日韩福利在线 | 日韩成人在线视频 | 久久影院一区 | 国产精品久久久久久婷婷天堂 | 日日噜噜噜夜夜爽爽狠狠视频, | av一级毛片 | 97超碰人人草 | 国产精品呻吟久久av凹凸 | 97色在线视频 | 精品视频一区二区三区在线观看 | 国产高清视频 | 天天搞天天操 |