electron + vue3 + ts 实现桌面小工具第三天

377 阅读1分钟

这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战

electron + vue3 + ts 实现桌面小工具第三天

前言

今天我们要做的事情是把框架基本搭建起来,一些基础代码写一写,详尽的基础代码会让开发更加快速

窗口设计

无边框窗口

昨天我们学习了electronBrowserWindow模块。frame参数决定是否有边框。

找到background.ts,修改BrowserWindow的参数frame的参数为true, 如图所示:

3.png

之后,我们就得到了一个无边框的窗口:

2.png

里面还有一些示例代码,把他删掉:

  1. 删除Home.vueAbout.vue
  2. 创建index.vue
  3. 调整router文件,调整后为
import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'
import Index from '../views/index.vue'

const routes: Array<RouteRecordRaw> = [
  {
    path: '/',
    name: 'Index',
    component: Index
  }
]

const router = createRouter({
  history: createWebHashHistory(),
  routes
})

export default router
  1. 调整App.vue, 调整后为
<template>
  <router-view />
</template>

<style lang="scss"></style>

窗口的拖动

这个时候我们就发现,我们的窗口似乎拖动不了,不要着急.让我再水

我们可以通过给元素添加css-webkit-app-region: drag,来设置一个可拖拽区, 这里要注意,设置可拖拽区之后, 区域内的点击事件会失效, 需要设置 -webkit-app-region: no-drag;

我们在项目src文件夹下创建一个layout文件夹, 并在文件夹下创建Header.vue文件.

Header.vue

<template>
  <div class="header"></div>
</template>

<script lang="ts">
import { defineComponent } from "vue";

export default defineComponent({
});
</script>

<style lang="scss" scoped>
.header {
  -webkit-app-region: drag;
  width: 100%;
  height: 40px;
  background-color: rgb(38, 163, 247);
}
</style>

在App.vue中引入头部

App.vue

<template>
  <Header />
  <router-view />
</template>

<script lang="ts">
import { defineComponent } from "vue";
import Header from "@/layout/Header.vue"

export default defineComponent({
  components: {
    Header
  }
});
</script>

<style lang="scss">
* {
  padding: 0;
  margin: 0;
  box-sizing: border-box
  ;
}
</style>

效果如下图所示:

awviz-t4fd0.gif

今日结语

今天时间有限,有点晚. 明天继续完善样式, 并写一下可能会用到的方法.

ps: 大海啊 你全是水啊 !!