• vue + vue-router+vuex+elementUI开发环境搭建


    先在npm中安装vue脚手架,

     1 //先安装国内镜像源
     2 npm install -g cnpm --registry=https://registry.npm.taobao.org
     3 
     4 //安装vue
     5 cnpm install --global vue-cli
     6 
     7 //创建一个项目
     8 vue init webpack my-project
     9 
    10 //安装依赖
    11 cd my-project
    12 cnpm install
    13 
    14 //加入vue-router
    15 cnpm install vue-router --save
    16 
    17 //加入vuex
    18 cnpm install vuex --save
    19 
    20 //加入elementUI
    21 cnpm i element-ui -S

    页面布局

    先App.vue

     1 <template>
     2   <div id="app">
     3     <router-view/>
     4   </div>
     5 </template>
     6 
     7 <script>
     8 
     9 export default {
    10   name: 'app',
    11 }
    12 </script>
    13 
    14 <style>
    15   body {
    16     margin: 0;
    17     padding: 0;
    18     font-size: 12px;
    19   }
    20 </style>

    再Home.vue

     1 <template>
     2   <el-container class="is-vertical">
     3    <my-header></my-header>
     4     <el-container>
     5       <el-aside width="230px">
     6         <el-menu class="el-menu-vertical-demo" @open="handleopen" @close="handleclose" @select="handleselect"
     7                  unique-opened router background-color="#333d52"
     8                  text-color="#fff">
     9           <template v-for="(item,index) in $router.options.routes" v-if="!item.hidden">
    10             <el-submenu :index="index+''" v-if="!item.leaf">
    11               <template slot="title"><i :class="item.iconCls"></i>{{item.name}}</template>
    12               <el-menu-item v-for="child in item.children" :index="child.path" :key="child.path" v-if="!child.hidden">
    13                 {{child.name}}
    14 
    15               </el-menu-item>
    16             </el-submenu>
    17             <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>
    18           </template>
    19         </el-menu>
    20       </el-aside>
    21       <el-main>
    22         <router-view></router-view>
    23       </el-main>
    24     </el-container>
    25   </el-container>
    26 </template>
    27 
    28 <script>
    29   import header from './header'
    30     export default {
    31       methods: {
    32         handleopen() {
    33           //console.log('handleopen');
    34         },
    35         handleclose() {
    36           //console.log('handleclose');
    37         },
    38         handleselect: function (a, b) {
    39         },
    40       },
    41       components: {
    42         'my-header': header,
    43       }
    44     }
    45 </script>

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

     1 <template>
     2   <el-header>
     3     <el-row :gutter="12">
     4       <el-col :span="3" class="logo-width"><img src="../img/top_icon.png" alt=""></el-col>
     5       <el-col :span="6">
     6         <el-dropdown>
     7                           <span class="el-dropdown-link">
     8                             <i class="el-icon-setting" style="margin-right: 10px"></i><span>admin</span>
     9                           </span>
    10           <el-dropdown-menu slot="dropdown">
    11             <el-dropdown-item>设置</el-dropdown-item>
    12             <el-dropdown-item>修改密码</el-dropdown-item>
    13             <el-dropdown-item>退出</el-dropdown-item>
    14           </el-dropdown-menu>
    15         </el-dropdown>
    16       </el-col>
    17       <el-col :span="6" class="userinfo">
    18         <el-dropdown>
    19           <span type="primary">admin</span>
    20           <!--<i class="el-icon-setting" style="margin-right: 15px"></i>-->
    21           <el-dropdown-menu slot="dropdown">
    22             <el-dropdown-item>设置</el-dropdown-item>
    23             <el-dropdown-item>修改密码</el-dropdown-item>
    24             <el-dropdown-item>退出</el-dropdown-item>
    25           </el-dropdown-menu>
    26         </el-dropdown>
    27         <span>|</span>
    28         <el-button type="text">退出</el-button>
    29       </el-col>
    30     </el-row>
    31   </el-header>
    32 </template>
    33 
    34 <script>
    35 
    36 </script>
    37 
    38 <style scoped>
    39   .el-header {
    40     background: #373d41;
    41     color: #fff;
    42     line-height: 60px;
    43     padding-left: 6px;
    44   }
    45   .el-dropdown {
    46     color: #fff;
    47   }
    48   .logo-width {
    49     width: 230px;
    50     text-align: center;
    51     border-color: hsla(62,77%,76%,.3);
    52     border-right-width: 1px;
    53     border-right-style: solid;
    54   }
    55   .userinfo {
    56     text-align: right;
    57     padding-right: 35px;
    58     float: right;
    59   }
    60   .el-button--text {
    61     color: inherit;
    62   }
    63 </style>

    然后是main.js

     1 // The Vue build version to load with the `import` command
     2 // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
     3 import Vue from 'vue'
     4 import App from './App'
     5 import router from './router'
     6 import ElementUi from 'element-ui'
     7 import 'element-ui/lib/theme-chalk/index.css'
     8 
     9 Vue.use(ElementUi)
    10 
    11 Vue.config.productionTip = false
    12 // $router.path('/overview')
    13 
    14 /* eslint-disable no-new */
    15 new Vue({
    16   el: '#app',
    17   router,
    18   template: '<App/>',
    19   components: { App }
    20 })

    router.js

     1 import Vue from 'vue'
     2 import Router from 'vue-router'
     3 import Home from '@/components/Home'
     4 import Error from '@/components/404'
     5 import overview from '@/components/overview/overview'
     6 import instance from '@/components/instance/instance'
     7 import backup from '@/components/instance/backup'
     8 import recycleBin from '@/components/instance/recycleBin'
     9 import keypairs from '@/components/instance/keypairs'
    10 import capacityCalculation from '@/components/instance/capacityCalculation'
    11 import ess_alarm from '@/components/ess/ess_alarm'
    12 import ess_cluster from '@/components/ess/ess_cluster'
    13 import ess_policy from '@/components/ess/ess_policy'
    14 import ess_profile from '@/components/ess/ess_profile'
    15 import ess_timer from '@/components/ess/ess_timer'
    16 
    17 Vue.use(Router);
    18 
    19 export default new Router({
    20   routes: [
    21     {
    22       path: '/',
    23       component: Home,
    24       name: '',
    25       iconCls: 'el-icon-message',
    26       leaf: true,//只有一个节点
    27       children: [
    28         { path: 'overview', component: overview, name: '云概览', mach: [] }
    29       ]
    30     },
    31     {
    32       path: '/404',
    33       name: '404',
    34       component: Error,
    35       hidden: true
    36     },
    37     {
    38       path: '/',
    39       component: Home,
    40       name: '云主机',
    41       iconCls: 'el-icon-message',//图标样式class
    42       children: [
    43         { path: 'instance', component: instance, name: '云主机列表', mach: [] },
    44         { path: 'recycle_bin', component: recycleBin, name: '回收站', mach: [] },
    45         { path: 'capacity_calculation', component: capacityCalculation, name: '容量计算', mach: [] },
    46         { path: 'backup', component: backup, name: '备份', mach: [] },
    47         { path: 'keypairs', component: keypairs, name: '密钥对', mach: [] },
    48       ]
    49     },
    50     {
    51       path: '/',
    52       component: Home,
    53       name: '弹性伸缩',
    54       iconCls: 'el-icon-message',//图标样式class
    55       children: [
    56         { path: 'ess_profile', component: ess_profile, name: '伸缩配置', mach: [] },
    57         { path: 'ess_policy', component: ess_policy, name: '伸缩规则', mach: [] },
    58         { path: 'ess_cluster', component: ess_cluster, name: '伸缩组', mach: [] },
    59         { path: '/', component: Home, name: '告警任务', mach: [
    60           { path: 'ess_timer', component: ess_timer, name: '定时伸缩'},
    61           { path: 'ess_alarm', component: ess_alarm, name: '告警伸缩'}
    62         ] }
    63       ]
    64     },
    65   ]
    66 })
  • 相关阅读:
    2017.02.20 ,学习C#第三天,基础运算符的运用~
    Linux上如何安装Mysql数据库并使用?
    Linux(CentOS6)上安装python3.6 并创建虚拟环境 -----最牛逼的方法
    python ----Linux上安装scrapy
    Scrapy selenium 设置头部信息headers-------UA
    python 将Excel表格中的一列数据转化成多行数据
    python中的一些小技巧(个人觉得哈 )
    scrapy selenium 设置chromedriver不加载图片
    Scrapy中添加随机User-Agent
    linux centOs 6.4版本 安装python 2.7.3 中的pip
  • 原文地址:https://www.cnblogs.com/mxyr/p/9239177.html
Copyright © 2020-2023  润新知