从零开始捣鼓一个Electron应用——界面组件
上一篇捣鼓了一个Electron-vue的脚手架,把Vue的全家桶搭建了一下,也很给面子的跑了起来。接下来就是如何一步一步完成我心中的那个“她”了。
首先先巴拉巴拉自己的技能:
- Vue用过,了解Vue的MVVM思想,但是Vue2及其全家桶确实第一次用
- 能写原生JavaScript程序,但是不明白什么是ES5或是ES6,反正就是看心情写了
- React了解一点,但是没有写过,所以Vue2中类似于React的思想也是。。。😂
- 总之,不要放弃治疗,从0开始异世界之旅吧。。。
每一篇文章都把自己的思(x)考(度)过程尽量表述出来,在文章开始的时候也会将本篇用到的东西稍微列举一下的。
本篇技术栈和主要技能
本篇先把以下内容整合到一起,然后做一个简单的欢迎页面,之后需要什么再继续补充。
- 📤Vue全家桶:vue2 + vuex + vue-router + webpack
- 🐇网络请求:axios(脚手架里自带,感觉上不会用到网络请求的)
- 🎈页面UI:Element-UI(本篇重点就是把它招募进来)、vue-awesome(这不是文章汇总)
组件安装
引用Element-UI
Element-UI的安装文档可以参考这里
通过npm安装
npm install element-ui -S
然后想要完整引入Element,在main.js加入以下几行
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-default/index.css'
Vue.use(ElementUI)
随便测试一下应该就能用了。
引入vue-awesome
vue-awesom 是对 Font Awesome 的一个封装,首先还是通过npm安装
然后还是在main.js内全局引入
import 'vue-awesome/icons'
import Icon from 'vue-awesome/components/Icon'
Vue.component('icon', Icon)
测试一下肯定也能用。
创建布局
下面开始实现一些功能,首先想在左面加入一个导航栏,用来选取功能,右面显示具体的功能,整个页面大概是这个样子的。
![页面布局](data:image/png;base64,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)
左边导航栏固定宽度,右边浮动。布局页面 PageFrame.vue
定义导航栏和显示内容的位置
<template>
<div>
<div class="sidebar">
<el-menu default-active="1">
<router-link v-bind:to="'/home'">
<el-menu-item index="1">
<icon name="home"></icon> 首页
</el-menu-item>
</router-link>
<router-link v-bind:to="'/sysinfo'">
<el-menu-item index="2">
<icon name="car"></icon> 测试
</el-menu-item>
</router-link>
</el-menu>
</div>
<div class="content">
<router-view></router-view>
</div>
</div>
</template>
<script>
export default {
name: 'page-frame'
}
</script>
<style>
a {
text-decoration: none;
}
.sidebar {
position: fixed;
width: 300px;
left: 0;
top: 0;
bottom: 0;
background-color: #eef1f6;
}
.content {
margin-left: 300px;
position: relative;
width: calc(100% - 300px);
min-height: 100vh;
background: radial-gradient( ellipse at top left,
rgba(255, 255, 255, 1) 40%,
rgba(229, 229, 229, .9) 100%);
}
</style>
原入口 App.vue
改为只渲染页面布局,即上面提到的内容。
<template>
<div id="app">
<page-frame></page-frame>
</div>
</template>
<script>
import PageFrame from './components/PageFrame'
export default {
name: 'markdown-yaml-info-manager',
components: { PageFrame }
}
</script>
<style>
.fa-icon {
height: 1em;
width: 1em;
bottom: -0.125em;
position: relative;
}
</style>
别忘了定义一下vue-route,在 route/index.js
下,至于什么是vue-route,照着写就可以了。大体意思是,/home
载入原先的欢迎页,/sysinfo
输出一下系统信息,如果是其它的就跳转到 /home
。这些配置信息可以配合 <router-link>
标签使用,用来转换 <route-view>
标签位置显示的内容。
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/home',
name: 'landing-page',
component: require('@/components/LandingPage')
},
{
path: '/sysinfo',
name: 'system-information',
component: require('@/components/LandingPage/SystemInformation')
},
{
path: '*',
redirect: '/home'
}
]
})
其它的页面css和布局稍微调整一下,整个布局就ok了。最后效果页。
![效果页面](/static/image/2.26403515.png)
问题说明
图标与字体对其问题
调整一下图标大小,微调一下位置,参考
.fa-icon {
height: 1em;
width: 1em;
bottom: -0.125em;
position: relative;
}
eslint问题
eslint会检查代码格式,所以平时要注意把格式化弄的跟eslint一样,不然每次格式化都会出错。
这里举个例子,通过配置 .eslintrc.js
可以控制检测的选项,比如下面的选项禁用了函数空格的检查,因为一直调不好
'rules': {
"space-before-function-paren": ["error", {
"anonymous": "never",
"named": "never",
"asyncArrow": "never"
}]
}
template只能有一个根元素
vue的模板的根元素只能有一个根元素
Component template should contain exactly one root element
所以只能写
<template>
<div>abcde....
<div></div>
</div>
</template>
而不能写成
<template>
<div>abcde....</div>
<div></div>
</template>
打包编译
打包编译可以运行命令
只发现可以编译成exe文件,无法生成mac上的文件,后来发现在 electron-builder 的文档里发现了,编译只能生成本身平台的文件Multi Platform Build
Don't expect that you can build app for all platforms on one platform.
算了,其它平台到时候借个电脑编译一下吧。
稍微总结一下
了解了主要的项目结构,初步使用了vue-router相关内容,对于vue组件的编写也有了一定的了解。
不太了解的地方是store的内容,这部分还没有接触到。
然后代码可以上传了。🌑
参考内容