zdg #286
|
@ -280,14 +280,9 @@ function handleAll() {
|
||||||
})
|
})
|
||||||
// 用于监听-状态管理变化-同步所有窗口
|
// 用于监听-状态管理变化-同步所有窗口
|
||||||
ipcMain.handle('pinia-state-change', (e, storeName, jsonStr) => {
|
ipcMain.handle('pinia-state-change', (e, storeName, jsonStr) => {
|
||||||
console.log('pinia-state-change-1', storeName, jsonStr)
|
|
||||||
|
|
||||||
for(const curWin of BrowserWindow.getAllWindows()){
|
for(const curWin of BrowserWindow.getAllWindows()){
|
||||||
const id = curWin.webContents.id
|
const id = curWin.webContents.id
|
||||||
const bool = id !== e.sender.id && !curWin.isDestroyed()
|
const bool = id !== e.sender.id && !curWin.isDestroyed()
|
||||||
if (id === e.sender.id) {
|
|
||||||
console.log('pinia-state-change-2', 'windows-send', curWin.type)
|
|
||||||
}
|
|
||||||
if (bool) { // 除了消息发送窗口和销毁的窗口 其他都发送
|
if (bool) { // 除了消息发送窗口和销毁的窗口 其他都发送
|
||||||
curWin.webContents.send('pinia-state-set', storeName, jsonStr)
|
curWin.webContents.send('pinia-state-set', storeName, jsonStr)
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,7 +57,7 @@ function stateSyncWatch(storeName, newState) {
|
||||||
const diffData = findDifferences(oldState, newState)
|
const diffData = findDifferences(oldState, newState)
|
||||||
if(!_.keys(diffData).length) return // 没有变化就终止执行
|
if(!_.keys(diffData).length) return // 没有变化就终止执行
|
||||||
// 数据处理: 找出差异
|
// 数据处理: 找出差异
|
||||||
console.log('state-change-diffData', diffData)
|
// console.log('state-change-diffData', diffData)
|
||||||
try {
|
try {
|
||||||
let pinaValue = {} // store pina状态管理需要的数据格式
|
let pinaValue = {} // store pina状态管理需要的数据格式
|
||||||
// 数据转换处理
|
// 数据转换处理
|
||||||
|
@ -116,7 +116,7 @@ function stateSyncInit(wid, store) {
|
||||||
function sessionWatch(store) {
|
function sessionWatch(store) {
|
||||||
const unsubscribe = sessionStore.onDidAnyChange((newV, oldV) => {
|
const unsubscribe = sessionStore.onDidAnyChange((newV, oldV) => {
|
||||||
if (newV !== oldV) {
|
if (newV !== oldV) {
|
||||||
console.log('session-change', newV, oldV)
|
// console.log('session-change', newV, oldV)
|
||||||
// 通知主线程更新
|
// 通知主线程更新
|
||||||
// ipcRenderer?.invoke('pinia-state-change', storeName, jsonStr)
|
// ipcRenderer?.invoke('pinia-state-change', storeName, jsonStr)
|
||||||
}
|
}
|
||||||
|
@ -129,7 +129,7 @@ function stateChange(store) {
|
||||||
const storeName = store.$id
|
const storeName = store.$id
|
||||||
ipcRenderer?.on('pinia-state-set', (e, sName, jsonStr) => {
|
ipcRenderer?.on('pinia-state-set', (e, sName, jsonStr) => {
|
||||||
if (sName == storeName) { // 更新对应数据
|
if (sName == storeName) { // 更新对应数据
|
||||||
console.log('state-set', jsonStr, sName)
|
// console.log('state-set', jsonStr, sName)
|
||||||
const curJson = circularSafeStringify(store.$state) // 当前数据
|
const curJson = circularSafeStringify(store.$state) // 当前数据
|
||||||
const isUp = curJson != jsonStr // 不同的时候才写入,不然会导致触发数据变化监听,导致死循环
|
const isUp = curJson != jsonStr // 不同的时候才写入,不然会导致触发数据变化监听,导致死循环
|
||||||
if (!isUp) return
|
if (!isUp) return
|
||||||
|
|
Loading…
Reference in New Issue