Vue 3+Vite+Eectron从入门到实战系列之(四)一Electron热身运动(二)

在electron里面能不呢实现暗黑模式和明亮模式的切换?我们怎么读取主进程里面的数据和系统数据。这篇就是来实现这几个效果的

实现效果

请添加图片描述

更改系统的主题色

在 App.vue 中添加代码。

<el-button type="warning" @click="changeTheme">更改系统主题颜色</el-button>
const themeMode = ref("light");
const changeTheme = () => {
  themeMode.value = themeMode.value === "light" ? "dark" : "light";
  window.electronAPI.changeTheme(themeMode.value);
};

在渲染进程的 preload.js 中添加代码。

之前,我们是在渲染进程中send,现在我们使用invoke,通过invoke来激活一个事件。

changeTheme(data) {
  ipcRenderer.invoke("change-theme", data);
}

主进程 main.js 中添加代码。

通过ipc.handle来注册一个事件,当主进程接收到渲染进程的消息时,就会触发该事件。

//触发更改主题的事件
ipc.handle("change-theme", (event, data) => {
  console.log("change theme", data);
  nativeTheme.themeSource = data;
});

send 和 invoke 的区别,我们在后面再详细分析。

读取渲染进程的自定义数据

在渲染进程的 preload.js 中添加代码。

sysLists: [
    {
      name: "系统设置",
      icon: "el-icon-setting",
      path: "/system/sysSetting",
    },
    {
      name: "系统日志",
      icon: "el-icon-document",
      path: "/system/sysLog",
    },
    {
      name: "系统用户",
      icon: "el-icon-user",
      path: "/system/sysUser",
    },
  ],

展示到我们的页面上

<ul>
  <li v-for="item in sysLists" :key="item.id">{{ item.name }}</li>
</ul>
const sysLists = computed(() => {
  return window.electronAPI.sysLists;
});

在这里插入图片描述

读取渲染进程中的系统信息

在渲染进程的 preload.js 中添加代码。

getSystemVersion: () => process.getSystemVersion(),

展示到我们的页面上

<h3>系统版本:{{ sysInfo }}</h3>
const sysInfo = computed(() => {
  return window.electronAPI.getSystemVersion();
});

在这里插入图片描述
这样,我们就实现了这几个效果。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值