• SPA项目开发之首页导航+左侧菜单


    目录

    一、mock的使用

    二、主界面搭建

    三、退出


    一、mock的使用

    步骤:

    1.下载依赖 npm install mockjs -D  

    2.引入到main.js中使用

    3.添加默认接口数据

    4.绑定接口数据

    ①、

    下载完后 package.json会多出下面该依赖

     ②、先配置开发环境

    dev.env.js

    1. 'use strict'
    2. const merge = require('webpack-merge')
    3. const prodEnv = require('./prod.env')
    4. module.exports = merge(prodEnv, {
    5. NODE_ENV: '"development"',
    6. MOCK: 'true'
    7. })

    prod.env.js

    1. 'use strict'
    2. module.exports = {
    3. NODE_ENV: '"production"',
    4. MOCK: 'false'
    5. }

    讲以下代码加入main.js中

    1. // process.env.MOCK 为 false,那么require('@/mock')不执行的;process.env.MOCK 在生成环境下为false
    2. process.env.MOCK && require('@/mock')

    ③、将文件mock拷到src中

    二、主界面搭建

    ①、将以下文件拷入到主界面中

     

     ②、然后导入图片

     

     ③、配置路由

    index.js

    1. import Vue from 'vue'
    2. import Router from 'vue-router'
    3. import HelloWorld from '@/components/HelloWorld'
    4. import AppMain from '@/components/AppMain'
    5. import LeftNav from '@/components/LeftNav'
    6. import TopNav from '@/components/TopNav'
    7. import Login from '@/views/Login'
    8. import Reg from '@/views/Reg'
    9. Vue.use(Router)
    10. export default new Router({
    11. routes: [{
    12. path: '/Login',
    13. name: 'Login',
    14. component: Login
    15. },
    16. {
    17. path: '/Login',
    18. name: 'Login',
    19. component: Login
    20. },
    21. {
    22. path: '/Reg',
    23. name: 'Reg',
    24. component: Reg
    25. },
    26. {
    27. path: '/AppMain',
    28. name: 'AppMain',
    29. component: AppMain,
    30. children: [{
    31. path: '/LeftNav',
    32. name: 'LeftNav',
    33. component: LeftNav
    34. },
    35. {
    36. path: '/TopNav',
    37. name: 'TopNav',
    38. component: TopNav
    39. }
    40. ]
    41. }
    42. ]
    43. })

     ④、进行更改

    将以下代码段加入到Login.vue中

     this.$router.push({path:"/AppMain"});

     

     AppmMain.vue

    1. // 导出模块
    2. export default {
    3. components:{
    4. TopNav,LeftNav
    5. },
    6. data(){
    7. return{
    8. asideClass:'main-aside'
    9. }
    10. }
    11. };

     LeftNav.vue:

    1. export default {
    2. data(){
    3. return{
    4. collapsed:false
    5. }
    6. }
    7. }

     

     TopNav.vue

    1. export default {
    2. data(){
    3. return{
    4. collapsed:false,
    5. imgsq:require('@/assets/img/sq.png'),
    6. imgshow:require('@/assets/img/show.png')
    7. }
    8. }
    9. }

     效果:

    三、退出

    main.js

    1. data(){
    2. return{
    3. // 在vue根实例中定一个变量,这个变量就是vue实例,它总线
    4. // props this.$emit
    5. Bus:new Vue({})
    6. }
    7. },

     

    TopNav.vue

    1. methods:{
    2. doToggle(){
    3. this.collapsed = !this.collapsed;
    4. // 将this.collapsed放到总线上
    5. this.$root.Bus.$emit("collapsed-side",this.collapsed);
    6. },
    7. exit(){
    8. this.$router.push({path:'/Login'})
    9. }
    10. }

     LeftNav.vue

    1. created(){
    2. // 从总线上取出this.collapsed变量
    3. this.$root.Bus.$on("collapsed-side",v =>{
    4. this.collapsed = v;
    5. });
    6. }

    AppMain.vue

    1. created(){
    2. // 从总线上取出this.collapsed变量
    3. this.$root.Bus.$on("collapsed-side",v =>{
    4. this.asideClass = v ? 'main-aside-collapsed' : 'main-aside';
    5. });
    6. }

    效果:

     

  • 相关阅读:
    spring bean实例化过程及顺序
    在Windows10上编译grpc工程,得到protoc.exe和grpc_cpp_plugin.exe
    设置模式之工厂模式
    【java】【MyBatisPlus】【二】MyBatisPlus常规使用
    3.1 栈和队列的定义和特点
    水位监测识别摄像机
    Mac 安装comfigUI (M1)
    【iOS开发- KVO(键值监听)】
    BI-SQL丨JOB
    安装 hbase(伪分布式)
  • 原文地址:https://blog.csdn.net/m0_62604616/article/details/126808694