亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在使用Vue的情況下實現Electron打開文件保存對話框?

發布時間:2020-07-17 14:57:18 來源:網絡 閱讀:1472 作者:BlueMiaomiao 欄目:web開發

一、問題場景

最近是在使用Electron+Vue構建一個基于modbus rtu協議的上位機應用,使用ipcMain和ipcRenderer實現點擊Vue組件后打開對話框,獲取到文件路徑并寫入數據,完成后通知。但是出現ipcRenderer.on() 調用多次的錯誤情況。
那么,使用Electron+Vue實現文件保存的正確姿勢是什么呢?

二、具體實現

在electron的src/main/index.js中定義IPC通道

// 1. 引入對話框與IPC通信模塊
const ipc = require('electron').ipcMain
const dialog = require('electron').dialog

// 2.定義IPC主進程響應函數
ipc.on('open-save-chart-dialog', function (event) {
    dialog.showSaveDialog({
        title: '保存圖像文件',
        defaultPath: '/',
        filters: [
            {
                name: 'Images',
                extensions: ['png', 'jpg']
            }
        ]
    }, function (filename) {
      // 通知渲染進程,將獲取到的文件路徑傳給Vue組件中響應函數
      event.sender.send('save-finished', filename);
    })
})

在Vue的組件中定義觸發函數和響應函數,這里是MainPage.vue

(1)首先為Button綁定Click點擊事件:

<Button type="info"  @click="handleSaveChart">保存</Button>

(2)接下來在script代碼塊的methods中定義handleSaveChart方法

export default {
    methods: {
        handleSaveChart: function () {
                // 向IPC通道發送信號,此時主線程收到信號立即執行相對應的響應函數
                const ipc = require('electron').ipcRenderer;
                ipc.send('open-save-chart-dialog');
          }
        }
}

(3)在Vue組件的created方法中定義主線程向渲染線程發送信號的響應函數

created() {
     const ipc = require('electron').ipcRenderer;
     ipc.on('save-finished', function (event, filename) {
         // 當filename等于null的時候表示用戶點擊了取消按鈕
         // 當用戶點擊保存按鈕的時候filename的值是對應文件的絕對路徑
         console.log(filename)
      })
}
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镇巴县| 伊吾县| 松滋市| 嫩江县| 咸丰县| 宜城市| 句容市| 华池县| 萨嘎县| 新余市| 治多县| 泰宁县| 于田县| 宁明县| 穆棱市| 涪陵区| 东丽区| 丹江口市| 墨脱县| 锦州市| 黄冈市| 张掖市| 武义县| 来安县| 蚌埠市| 诸暨市| 思茅市| 澄江县| 屯昌县| 丁青县| 丘北县| 彭泽县| 河西区| 利川市| 长宁区| 伊宁县| 临邑县| 山阴县| 普安县| 望江县| 犍为县|