electron+vue实现菜单栏

  公司开发的产品都是用c++写的,而且还都是几个人,老板想搞下创新,就是看看能否通过其它的方式来实现前后端分离。然后我就了解到了electron这个东西,之前学安卓的时候看到过flutter,不经意间看到了electron,但是没有仔细看,就知道是写工具的。所以最近突然想起来这个东西可以搞一搞。所以我打算以后经常分享一些自己学到的东西给大家。多的不说,上菜。

  1、首先创建一个electron+vue的项目(开发工具 Vs Code),用vs打开打开之后的样子。

    

  

2、在渲染进程中创建一个js(Menu.js)文件(menu文件夹自己创建的)

      

Menu.js里面的代码

 1 //在渲染进程中使用Menu模块需要用到remote函数
 2 var Menu = require(‘electron‘).remote.Menu;
 3
 4 //创建一个模板
 5 var template=[
 6     {
 7         //父标题
 8         label:‘文件‘,
 9         submenu:[
10             {
11                 //添加快捷键
12                 accelerator:‘ctrl+n‘,
13                 //子标题
14                 label:‘新建文件‘,
15                 //子标题类型 type String (可选)-可以是 normal、separator、submenu、checkbox 或 radio。
16                 type:‘checkbox‘,
17                 //点击事件
18                 click:function(){
19                   alert("ctrl");
20                   checked:true;
21                 }
22             },
23             {
24                 label:‘新建窗口‘,
25                 type:‘checkbox‘,
26                 click:function(){
27                   alert("ctrl2");
28                   checked:true;
29                 }
30             }
31         ]
32     },
33
34     {
35         label:‘编辑‘,
36         submenu:[
37             {
38                 label:‘编辑文件‘
39             },
40             {
41                 label:‘编辑窗口‘
42             }
43         ]
44     },
45 ]
46
47 //把模板添加到Menu菜单中
48 var m = Menu.buildFromTemplate(template);
49 Menu.setApplicationMenu(m);         

3、在其它窗口引入

<template>

  <div class="boxShadow">
  </div>

</template> 

<script type=‘text/javascript‘>

  import menu from ‘@/components/menu/Menu‘
  export default {
    name: ‘boxShadow‘,

    methods: {

    },

    data() {
      return {

      }
    },
  }

</script>

<style lang="less" scoped>

</style>
              

4、至于test.vue的路径 自己去设置啊。  运行查看效果图。

5、完成

不懂就问 QQ:3064349253

原文地址:https://www.cnblogs.com/alex96/p/12031053.html

时间: 2024-10-22 01:10:29

electron+vue实现菜单栏的相关文章

手把手教Electron+vue的使用

.现如今前端框架数不胜数,尤其是angular.vue吸引一大批前端开发者,在这个高新技术快速崛起的时代,自然少不了各种框架的结合使用.接下来是介绍electron+vue的结合使用. 2.Electron是什么?? 对于我来说Electron相当于一个浏览器的外壳,可以把网页程序嵌入到壳里面,可以运行在桌面上的一个程序,可以把网页打包成一个在桌面运行的程序,通俗来说就是软件,比如像QQ.优酷.网易音乐等等.功能的强大超出你的想象,可以构建跨平台桌面程序,本身支持node.js,可以使用node

【原创】从零开始搭建Electron+Vue+Webpack项目框架,一套代码,同时构建客户端、web端(二)

导航: (一)Electron跑起来(二)从零搭建Vue全家桶+webpack项目框架(三)Electron+Vue+Webpack,联合调试整个项目(未完待续)(四)Electron配置润色(未完待续)(五)预加载及自动更新(未完待续)(六)构建.发布整个项目(包括client和web)(未完待续) 摘要:上篇文章说到了如何新建工程,并启动一个最简单的Electron应用.“跑起来”了Electron,那就接着把Vue“跑起来”吧.有一点需要说明的是,webpack是贯穿这个系列始终的,我也是

electron+vue制作桌面应用--自定义标题栏

electron会默认显示边框和标题栏,如下图 我们来看一下如何自定义一个更加有(gao)意(da)思(shang)的标题栏,例如网易云音乐这种 首先我们要把默认的标题栏删掉,找到主进程中创建窗体部分,new BrowserWindow时添加参数frame: false即可 mainWindow = new BrowserWindow({ useContentSize: true, frame: false, }) 这样会把标题栏和边框一并隐藏 然后我们开始制作自己的标题栏创建Mytitle组件

【原创】从零开始搭建Electron+Vue+Webpack项目框架(五)预加载和Electron自动更新

导航: (一)Electron跑起来(二)从零搭建Vue全家桶+webpack项目框架(三)Electron+Vue+Webpack,联合调试整个项目(四)Electron配置润色(五)预加载及自动更新(六)构建.发布整个项目(包括client和web)(未完待续) 摘要:到目前为止,我们的项目已经具备了PC客户端该有的一些基础功能和调试环境,但是总感觉缺了灵魂,那就是结合实际项目.实际业务的细节处理,缺着吧...这篇文章就介绍一下预加载和自动更新,文字功底有限,如有介绍的不清楚的地方,欢迎留言

Electron +Vue +Builder Hello World 运行并打包

1.配置环境说明 2.创建项目 并编写hello world 在ele-project 根目录下面创建index.html. main.js index.html 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>Hello World!</title> 5 </head> 6 <body> 7 <h1>Hello World!</h1> 8 </bod

Electron+Vue – 基础学习(2): 项目打包成exe桌面应用

项目创建完成,启动正常,接下来就是项目打包了.将测试Demo打包成exe桌面应用,点击exe文件,运行项目. 书接上文,创建项目有三种方式 Git拷贝.直接创建:通过electron社群提供的命令行工具(CLI)  electron-forge 创建项目,看起来对应的项目打包方式也应该有三种才对,但其实细看第一种方式和第三种项目创建方式是一样的,所以它们的项目打包方式也是一样的. 打包 electron 项目webpack工具有 electron-packager 和 electron-buil

如何在使用Vue的情况下实现Electron打开文件保存对话框?

一.问题场景 最近是在使用Electron+Vue构建一个基于modbus rtu协议的上位机应用,使用ipcMain和ipcRenderer实现点击Vue组件后打开对话框,获取到文件路径并写入数据,完成后通知.但是出现ipcRenderer.on() 调用多次的错误情况.那么,使用Electron+Vue实现文件保存的正确姿势是什么呢? 二.具体实现 在electron的src/main/index.js中定义IPC通道 // 1. 引入对话框与IPC通信模块 const ipc = requ

electron仿制qq(2) 主界面制作

制作从头开始 最后会将写好的组件放到一起的!之前写了好几天的纯css 有点累 本章中将使用sass 如果代码太长 会分两个或多个章节写代码中会有详细的注释 以便于大家阅读and理解界面可能会有部分偏差 比较是仿制的 官方界面尺寸 默认宽度: 280px (大约 我之前拉伸过 被记录了 所以没法准确的测量)默认高度: 652px (也是大约值)最小高度: 528px最小宽度: 280px最大高度: 1041px (可能不太准确 有可能是根据分辨率来显示的)最大宽度: 605px顶部头像区域高度:

聊聊 electron-vue-serialport 的添加数据持久化分析以及解决方案,关联 pouchdb 、nedb 、vuex-persistedstate

什么是 数据持久化? 数据持久化其实就是指期望把数据长期存储下来,而这个问题被拆分成很多场合,用这篇记录一下一些细节和过程. 起因 起因 electron-vue-serialport 使用的 electron-vue 基础 vue-admin-template 在 yarn run dev 下 js-cookie 正常使用,但 build 后无法获取存放在 Cookie 中的 token 数据,经过写入后读取的测试返回仍然是 undefined . 这也就说明它可能并非真正的同步模式,考虑到有