先在npm中安装vue脚手架,

 //先安装国内镜像源
npm install -g cnpm --registry=https://registry.npm.taobao.org //安装vue
cnpm install --global vue-cli //创建一个项目
vue init webpack my-project //安装依赖
cd my-project
cnpm install //加入vue-router
cnpm install vue-router --save //加入vuex
cnpm install vuex --save //加入elementUI
cnpm i element-ui -S

页面布局

先App.vue

 <template>
<div id="app">
<router-view/>
</div>
</template> <script> export default {
name: 'app',
}
</script> <style>
body {
margin: 0;
padding: 0;
font-size: 12px;
}
</style>

再Home.vue

 <template>
<el-container class="is-vertical">
<my-header></my-header>
<el-container>
<el-aside width="230px">
<el-menu class="el-menu-vertical-demo" @open="handleopen" @close="handleclose" @select="handleselect"
unique-opened router background-color="#333d52"
text-color="#fff">
<template v-for="(item,index) in $router.options.routes" v-if="!item.hidden">
<el-submenu :index="index+''" v-if="!item.leaf">
<template slot="title"><i :class="item.iconCls"></i>{{item.name}}</template>
<el-menu-item v-for="child in item.children" :index="child.path" :key="child.path" v-if="!child.hidden">
{{child.name}} </el-menu-item>
</el-submenu>
<el-menu-item v-if="item.leaf&&item.children.length>0" :index="item.children[0].path"><i :class="item.iconCls"></i>{{item.children[0].name}}</el-menu-item>
</template>
</el-menu>
</el-aside>
<el-main>
<router-view></router-view>
</el-main>
</el-container>
</el-container>
</template> <script>
import header from './header'
export default {
methods: {
handleopen() {
//console.log('handleopen');
},
handleclose() {
//console.log('handleclose');
},
handleselect: function (a, b) {
},
},
components: {
'my-header': header,
}
}
</script>

因header重新注册了一个新的组件

 <template>
<el-header>
<el-row :gutter="12">
<el-col :span="3" class="logo-width"><img src="../img/top_icon.png" alt=""></el-col>
<el-col :span="6">
<el-dropdown>
<span class="el-dropdown-link">
<i class="el-icon-setting" style="margin-right: 10px"></i><span>admin</span>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>设置</el-dropdown-item>
<el-dropdown-item>修改密码</el-dropdown-item>
<el-dropdown-item>退出</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-col>
<el-col :span="6" class="userinfo">
<el-dropdown>
<span type="primary">admin</span>
<!--<i class="el-icon-setting" style="margin-right: 15px"></i>-->
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>设置</el-dropdown-item>
<el-dropdown-item>修改密码</el-dropdown-item>
<el-dropdown-item>退出</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<span>|</span>
<el-button type="text">退出</el-button>
</el-col>
</el-row>
</el-header>
</template> <script> </script> <style scoped>
.el-header {
background: #373d41;
color: #fff;
line-height: 60px;
padding-left: 6px;
}
.el-dropdown {
color: #fff;
}
.logo-width {
width: 230px;
text-align: center;
border-color: hsla(62,77%,76%,.3);
border-right-width: 1px;
border-right-style: solid;
}
.userinfo {
text-align: right;
padding-right: 35px;
float: right;
}
.el-button--text {
color: inherit;
}
</style>

然后是main.js

 // The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import ElementUi from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css' Vue.use(ElementUi) Vue.config.productionTip = false
// $router.path('/overview') /* eslint-disable no-new */
new Vue({
el: '#app',
router,
template: '<App/>',
components: { App }
})

router.js

 import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/Home'
import Error from '@/components/404'
import overview from '@/components/overview/overview'
import instance from '@/components/instance/instance'
import backup from '@/components/instance/backup'
import recycleBin from '@/components/instance/recycleBin'
import keypairs from '@/components/instance/keypairs'
import capacityCalculation from '@/components/instance/capacityCalculation'
import ess_alarm from '@/components/ess/ess_alarm'
import ess_cluster from '@/components/ess/ess_cluster'
import ess_policy from '@/components/ess/ess_policy'
import ess_profile from '@/components/ess/ess_profile'
import ess_timer from '@/components/ess/ess_timer' Vue.use(Router); export default new Router({
routes: [
{
path: '/',
component: Home,
name: '',
iconCls: 'el-icon-message',
leaf: true,//只有一个节点
children: [
{ path: 'overview', component: overview, name: '云概览', mach: [] }
]
},
{
path: '/404',
name: '404',
component: Error,
hidden: true
},
{
path: '/',
component: Home,
name: '云主机',
iconCls: 'el-icon-message',//图标样式class
children: [
{ path: 'instance', component: instance, name: '云主机列表', mach: [] },
{ path: 'recycle_bin', component: recycleBin, name: '回收站', mach: [] },
{ path: 'capacity_calculation', component: capacityCalculation, name: '容量计算', mach: [] },
{ path: 'backup', component: backup, name: '备份', mach: [] },
{ path: 'keypairs', component: keypairs, name: '密钥对', mach: [] },
]
},
{
path: '/',
component: Home,
name: '弹性伸缩',
iconCls: 'el-icon-message',//图标样式class
children: [
{ path: 'ess_profile', component: ess_profile, name: '伸缩配置', mach: [] },
{ path: 'ess_policy', component: ess_policy, name: '伸缩规则', mach: [] },
{ path: 'ess_cluster', component: ess_cluster, name: '伸缩组', mach: [] },
{ path: '/', component: Home, name: '告警任务', mach: [
{ path: 'ess_timer', component: ess_timer, name: '定时伸缩'},
{ path: 'ess_alarm', component: ess_alarm, name: '告警伸缩'}
] }
]
},
]
})

vue + vue-router+vuex+elementUI开发环境搭建的更多相关文章

  1. vue前端+java后端 vue + vuex + koa2开发环境搭建及示例开发

    vue + vuex + koa2开发环境搭建及示例开发 https://segmentfault.com/a/1190000012918518 vue前端+java后端 https://blog.c ...

  2. Electron+Vue+ElementUI开发环境搭建

    Node环境搭建 本文假定你完成了nodejs的环境基础搭建: 镜像配置(暂时只配置node包镜像源,部分包的二进制镜像源后续讨论).全局以及缓存路径配置,全局路径加入到了环境变量 $ node -v ...

  3. vue学习【一、开发环境搭建】

    一.安装node.js https://nodejs.org/en/ 建议安装LTS版本 安装完毕之后cmd命令查看node版本,如果不识别,记住设置环境变量 显示上面信息则安装成功 二.设置node ...

  4. windows下vue+webpack前端开发环境搭建及nginx部署

    一.开发环境搭建 1.前端框架一般都依赖nodejs,我们首先要安装node.js.请参考http://www.cnblogs.com/wuac/p/6381819.html. 2.由于许多npm的源 ...

  5. windows下vue.js开发环境搭建教程

    这篇文章主要为大家详细介绍了windows下vue.js开发环境搭建教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中 ...

  6. vue开发环境搭建及热更新

    写这篇博客的目的是让广大的学者在初入Vue项目的时候少走些弯路,虽然现在有很多博客也有差不多的内容,但是博主在里面添加了一些学习时碰到的小问题.在阅读这篇博客之前,我先给大家推荐一篇文章<入门W ...

  7. vue 开发系列(一) vue 开发环境搭建

    概要 目前前端开发技术越来越像后台开发了,有一站式的解决方案. 1.JS包的依赖管理像MAVEN. 2.JS代码编译打包. 3.组件式的开发. vue 是一个前端的一站式的前端解决方案,从项目的初始化 ...

  8. express+mysql+vue开发环境搭建

    最近开始做一个实验室资产管理系统,后台使用node.js的Express框架,前端使用vue,数据库使用mysql.在这里开始简单记录一下开发过程和遇到的问题. 今天要说的是express+mysql ...

  9. 最全Vue开发环境搭建

    前言 一直想去学Vue,不过一直找不到一个契机.然公司手机端用到了跨平台开发apicloud,里边涉及到Vue组件化开发,例如header和footer的封装,以及apicloud自定义的frame等 ...

随机推荐

  1. MongoDB中MapReduce介绍与使用

    一.简介 在用MongoDB查询返回的数据量很大的情况下,做一些比较复杂的统计和聚合操作做花费的时间很长的时候,可以用MongoDB中的MapReduce进行实现 MapReduce是个非常灵活和强大 ...

  2. 如何制作initrd.img文件

    2008-11-12 16:02:37    initrd.img文件是redhat,mandrake等linux发布使用的内存镜像文件.镜像中是一个微型系统.在安装系统时,将initrd.img展开 ...

  3. Innotop的安装和使用

    功能特点1.显示当前innodb的全部事务列表:2.显示当前正运行着的查询:3.显示当前锁和锁等等的列表:4.服务器状态和变量的摘要信息 显示了数值的相对变化幅度:5.有多种模式可用来显示Innodb ...

  4. linux select函数详解

    linux select函数详解 在Linux中,我们可以使用select函数实现I/O端口的复用,传递给 select函数的参数会告诉内核: •我们所关心的文件描述符 •对每个描述符,我们所关心的状 ...

  5. [svc]linux的ip命令操作接口和路由表

    参考: https://www.tecmint.com/ip-command-examples/ 学会linux的配置ip,配置网关,添加路由等命令 man ip man ip address man ...

  6. cbow与skip-gram

    场景:上次回答word2vec相关的问题,回答的是先验概率和后验概率,没有回答到关键点. 词袋模型(Bag of Words, BOW)与词向量(Word Embedding)模型 词袋模型就是将句子 ...

  7. CSS初始化示例代码

    CSS初始化示例代码 /* css reset www.admin10000.com */ body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code, ...

  8. github新建repositories后import已有code 随后同步更新

    github上,可以forks别人已有的项目,而且同步更新合并也很方便,但如果是自己新建的项目,而导入的是别人的代码修改后,别人的又更新了,自己想获取他的更新,怎么办呢?其实很简单. # git cl ...

  9. 教你一招:解决Windows 开机弹出AotuIt ERROR 错误

    AutoIt是个脚本语言,常被用于自动化安装.网络上有些系统镜像里含有AutoIt脚本,用于系统的自动配置.出现这种问题往往有两种可能的原因: 1)做系统的时候没搞好.这种情况就需要换一个镜像文件. ...

  10. java之Pattern类详解

    在JDK 1.4中,Java增加了对正则表达式的支持. java与正则相关的工具主要在java.util.regex包中:此包中主要有两个类:Pattern.Matcher. Pattern  声明: ...