天天看点

物联网项目入坑2---VUE之导航栏设计

简单学习了几天的Vue相关知识,根据自己的需求设计了一个导航栏。在这里做一个简单的记录~~~

新建项目相关的知识,可参考前一篇博客。

先来一张效果图:

物联网项目入坑2---VUE之导航栏设计

准备工作:

1.新建一个工程,然后用VScode软件打开

2.在工程src目录下的components目录下,新建一个导航栏文件,navigation_bar.vue,然后添加以下内容到该文件;

<template>
    <div style="background-color: #EBEBEB;height:800px">
        <div style="width:100%;background-color: #409EFF; height:7%">
            <span class="demonstration" style="float:left;padding-top:16px;color:white;margin-left:50%">
                网站首页
            </span>
            <span class="demonstration" style="float:right;padding-top:16px;margin-right:1%">
                <el-dropdown trigger="click">
                  <span class="el-dropdown-link" style="color:white">
                    吴小白<i class="el-icon-caret-bottom el-icon--right"></i>
                  </span>
                  <el-dropdown-menu slot="dropdown">
                    <el-dropdown-item>个人信息</el-dropdown-item>
                    <el-dropdown-item>退出登录</el-dropdown-item>
                  </el-dropdown-menu>
                </el-dropdown>
            </span>
        </div>
        <div style="background-color: #EBEBEB;margin-top:5px">
            <el-row :gutter="10" >
                <el-col :xs="4" :sm="4" :md="4" :lg="4">
                    <div >
                        <el-menu default-active="1" class="el-menu-vertical-demo" style="min-height:800px" @select="handleSelect"
                        background-color="#545c64"
                        text-color="#fff"
                        active-text-color="#409EFF">
                            <!-- 一个导航栏下面有子导航栏 -->
                            <el-submenu index="1">
                                <template slot="title">
                                    <i class="el-icon-monitor"></i>
                                    <span slot="title">智能设备</span>
                                </template>
                            <el-menu-item-group>
                                <el-menu-item index="1-1" >
                                    <i class="el-icon-menu"></i>
                                    <span slot="title">设备列表</span>
                                    </el-menu-item>
                                <el-menu-item index="1-2">
                                    <i class="el-icon-chat-dot-square"></i>
                                    <span slot="title">设备对话</span>    
                                </el-menu-item>
                                <el-menu-item index="1-3">
                                    <i class="el-icon-circle-plus-outline"> </i>
                                    <span slot="title">添加设备</span>
                                </el-menu-item>
                            </el-menu-item-group>
                            <!-- 在子菜单中再建立一个子菜单 -->
                            <!-- <el-submenu index="1-4">
                                <span slot="title">选项4</span>
                            <el-menu-item index="1-4-1">选项1</el-menu-item>
                            </el-submenu> -->
                            </el-submenu>
                            <!-- 下面是单个导航栏 -->
                            <el-menu-item index="2">
                                <i class="el-icon-data-analysis"></i>
                                <span slot="title">设备数据</span>
                            </el-menu-item>
                            <el-menu-item index="3">
                                <i class="el-icon-location"></i>
                                <span slot="title">位置查询</span>
                            </el-menu-item>
                            <el-menu-item index="4">
                                <i class="el-icon-setting"></i>
                                <span slot="title">系统设置</span>
                            </el-menu-item>
                        </el-menu>
                    </div>
                </el-col>
                <!-- 内容 -->
                <el-col :xs="20" :sm="20" :md="20" :lg="20">
                    <div style="margin-top:10px">
                        <router-view></router-view>
                    </div>
                </el-col>
            </el-row>
        </div>
    </div>
</template>

<style>
  .el-menu-vertical-demo:not(.el-menu--collapse) {
    width: 200px;
    min-height: 400px;
  }
</style>


<script type="text/ecmascript-6">
    export default {
        data(){
            return {
                searchCriteria: '',
            }
        },

        methods:{
            handleIconClick(ev) {
                console.log(ev);
            },

            handleSelect(key, keyPath){
                switch(key){
                    case '1':
                        this.$router.push('/Page1');
                        break;
                    case '1-1':
                        this.$router.push('/Page1_1');
                        break;
                    case '1-2':
                        this.$router.push('/Page1_2');
                        break;
                    case '1-3':
                        this.$router.push('/Page1_3');
                        break;
                    case '2':
                        this.$router.push('/Page2')
                        break;
                    case '3':
                        this.$router.push('/Page3')
                        break;
                    case '4':
                        this.$router.push("/Page4");
                        break;
                    default :
                        break;
                }
            },

        },
    }
</script>
           

3.在工程src目录下新建一个page的文件夹,分别在里面创建以下几个文件:

物联网项目入坑2---VUE之导航栏设计

然后在每个文件中添加以下内容:注意每个文件修改下内容~~~~

例如在page1_1.vue中添加代码:

<template>
    <div>
        这是第1-1页
    </div>
</template>

<script type="text/ecmascript-6">
export default {
    data(){
        return{}
    }
    
}
</script>
           

4.在工程src目录下的route目录下的index.js文件中增加新的路由

以下是修改后的index.js文件代码:

import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
//大导航栏
import Page1 from '@/page/page1.vue'
import Page2 from '@/page/page2.vue'
import Page3 from '@/page/page3.vue'
import Page4 from '@/page/page4.vue'
//子导航栏
import Page1_1 from '@/page/page1_1.vue'
import Page1_2 from '@/page/page1_2.vue'
import Page1_3 from '@/page/page1_3.vue'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'HelloWorld',
      component: HelloWorld
    },
    //后面的都是自己添加的
    {
      path: '/page1',
      name: 'Page1',
      component: Page1
    },
    {
      path: '/page1_1',
      name: 'Page1_1',
      component: Page1_1
    },
    {
      path: '/page1_2',
      name: 'Page1_2',
      component: Page1_2
    },
    {
      path: '/page1_3',
      name: 'Page1_3',
      component: Page1_3
    },
    {
      path: '/page2',
      name: 'Page2',
      component: Page2
    },
    {
      path: '/page3',
      name: 'Page3',
      component: Page3
    },
    {
      path: '/page4',
      name: 'Page4',
      component: Page4
    }
  ]
})
           

5.修改main.js文件,主要是导入饿了么UI的框架和自己编写导航栏

// 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'
//导入elementUI相关框架
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
//导入导航栏
import Navi from './components/navigation_bar.vue'



Vue.use(ElementUI)

Vue.config.productionTip = false

// /* eslint-disable no-new */
// new Vue({
//   el: '#app',
//   router,
//   components: { App },
//   template: '<App/>'
// })
new Vue({
  el: '#app',
  router,
  render: h => h(Navi)
})
           

6.打开VS Terminal,使用命令

npm install

npm run dev

即可打开网页浏览。element-ui导航栏设计相关可以参考官网,我也是半路出家的,就不误人子弟了。

物联网项目入坑2---VUE之导航栏设计

PS:这里只涉及到简单的页面切换,后续的话,慢慢再往里面加些数据展示~~~~