先在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. Java 8系列之Stream的基本语法详解

    本文转至:https://blog.csdn.net/io_field/article/details/54971761 Stream系列: Java 8系列之Stream的基本语法详解 Java 8 ...

  2. ListView中的Item点击事件和子控件的冲突或者item点击没有反应的解决的方法

    fragment中加入了button和checkbox这些控件.此时这些子控件会将焦点获取到.所以经常当点击item时变化的是子控件.item本身的点击没有响应. 这时候就能够使用descendant ...

  3. SVProgressHUD在viewDidLoad里无法显示的bug

    两年前已经开始讨论,至今没有解决方案.https://github.com/samvermette/SVProgressHUD/issues/54 [SVProgressHUD show] 的逻辑要放 ...

  4. mysql乱码问题解决办法

    最近开发一下小项目,遇到了最常见的乱码问题. 1.数据库使用utf-8  utf-8_generic_ci编码,使用csv上传并导入数据,插入数据的时候出现了问题,有很大部分数据没有被导入,所以使用m ...

  5. 大数高精度计算库gmp简介

    1.编译安装,我用的ubuntu18.04 $sudo apt-get install m4 //默认没安装,gmp用这个 $tar -jvxf gmp-.tar.bz2 //解压 $cd gmp- ...

  6. JAVA(三)JAVA常用类库/JAVA IO

    成鹏致远 | lcw.cnblog.com |2014-02-01 JAVA常用类库 1.StringBuffer StringBuffer是使用缓冲区的,本身也是操作字符串的,但是与String类不 ...

  7. Selenium Web 自动化 - 如何找到元素

    Selenium Web 自动化 - 如何找到元素 2016-07-29 1. 什么是元素? 元素:http://www.w3school.com.cn/html/html_elements.asp ...

  8. 执行一条SQL语句,插入多条数据!

    insert into blog (bid, aid) values (2,1)(2,2)(2,3)

  9. 【九天教您南方cass 9.1】 14 坐标数据的纠正

    同学们大家好,欢迎收看由老王测量上班记出品的cass9.1视频课程 我是本节课主讲老师九天. 我们讲课的教程附件也是共享的,请注意索取 在测量空间中. 九天老师的联系方式  点击直接请教九天老师吧! ...

  10. 命名实体识别,使用pyltp提取文本中的地址

    首先安装pyltp pytlp项目首页 单例类(第一次调用时加载模型) class Singleton(object): def __new__(cls, *args, **kwargs): if n ...