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

文章讲述了如何在开发环境中使用Mock.js进行API数据模拟,包括配置mock主文件、生成随机数据、路由拦截以及在登录界面实现跳转。同时介绍了前端界面的组件导入、路由配置和登录成功后的跳转逻辑。
摘要由CSDN通过智能技术生成

//开发环境下才会引入mockjs

// 开发环境:true&&require(‘@mock’)会执行后面代码,也就是说mock.js会被导入到当前环境中、

// 生产环境:false&&require(‘@mock’)不会执行后面代码,也就是说mock.js不会被导入到当前环境中

process.env.MOCK && require(‘@/mock’)

/ 都是相对src的路径

main.js造数据的语法,使生成的数据不再单一

//使用mockjs的模板生成随机数据

const loginInfo = {

‘code|0-1’: 0,                //    两种

‘msg|3-10’: ‘msg’          //    八种

}

export default loginInfo;

③使用mockjs

在src目录下创建mock目录,定义mock主文件index.js,并在该文件中定义拦截路由配置

绑定的关系写在 /src/mock/index.js中

// 导入公共模块及mockjs全局设置

import Mock from ‘mockjs’ //引入mockjs,npm已安装

import action from ‘@/api/action’ //引入请求地址

//全局设置:设置所有ajax请求的超时时间,模拟网络传输耗时

Mock.setup({

// timeout: 400 //延时400s请求到数据

timeout: 200 - 400 //延时200-400s请求到数据

})

//引登陆的测试数据,并添加至mockjs

import loginInfo from ‘@/mock/json/login-mock.js’

let s1 = action.getFullPath(‘SYSTEM_USER_DOLOGIN’)

Mock.mock(s1, “post”, loginInfo)

// Mock.mock(s1, /post|get/i, loginInfo)

‘SYSTEM_USER_DOLOGIN’: ‘/vue/userAction_login.action’, //用户登陆

let s1 = action.getFullPath(‘SYSTEM_USER_DOLOGIN’)

Mock.mock(s1, “post”, loginInfo)

当请求Mock.mock时,会将变量s1对应的地址与loginInfo进行绑定

loginInfo在login-mock.js中

const loginInfo = {

‘code|0-1’: 0,

‘msg|3-10’: ‘msg’

}

export default loginInfo;

index.js将请求与结果进行了绑定

注:index.js文件的作用很显然,就是将分散的xxx-mock文件集合起来.后面再添加新的mock文件,都需要在这里引入

没有请用后台返回的数据,数据随机

每一次返回的msg 结果都不一样,有登陆成功也有失败

二,前台主界面的搭建

==========

1、导入公共组件

①、AppMain.vue

Main

②、LeftNav.vue

<el-menu default-active=“2” class=“el-menu-vertical-demo” background-color=“#334157”

text-color=“#fff” active-text-color=“#ffd04b” :collapse=“collapsed” >

导航一

分组一

选项1

选项2

选项3

选项4

选项1

导航二

导航三

导航四

③、TopNav.vue

<img class=“showimg” :src=“collapsed?imgshow:imgsq” @click=“doToggle()”>

超级管理员

设置

个人中心

<el-menu-item @click=“exit()” index=“2-3”>退出

④、导入图片/src/assets/img/…

公共组件在components目录下,业务组件在views目录下

2、配置路由

src/router/index.js

import Vue from ‘vue’

import Router from ‘vue-router’

import HelloWorld from ‘@/components/HelloWorld’

import Login from ‘@/views/Login’

import Reg from ‘@/views/Reg’

import AppMain from ‘@/components/AppMain’

import LeftNav from ‘@/components/LeftNav’

import TopNav from ‘@/components/TopNav’

Vue.use(Router)

export default new Router({

routes: [{

path: ‘/’,

name: ‘Login’,

component: Login

},

{

path: ‘/Reg’,

name: ‘Reg’,

component: Reg

},

{

path: ‘/Login’,

name: ‘Login’,

component: Login

},

{

path: ‘/AppMain’,

name: ‘AppMain’,

component: AppMain,

children: [{

path: ‘/LeftNav’,

name: ‘LeftNav’,

component: LeftNav

},

{

path: ‘/TopNav’,

name: ‘TopNav’,

component: TopNav

}

]

},

]

})

3、登录成功跳主界面

修改登录界面登录成功后跳主界面

src/views/Login.vue(登录)        登录成功跳转到主界面

submitForm() {

let url = this.axios.urls.SYSTEM_USER_DOLOGIN;

this.axios.post(url, this.ruleForm).then((resp) => {

console.log(resp);

if (resp.data.code == 1) {

this.$message({

message: resp.data.msg,

type: ‘success’

});

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

} else {

this.$message({

message: resp.data.msg,

type: ‘warning’

});

}

}).catch(function(error) {

console.log(error);

});

}

接下来运行会报一些错,下面会一一解决

①asideClass属性未定义

解决:在AppMain.vue中定义asideClass属性

折叠

.main-aside-collapsed

不折叠

.main-aside

// 导出模块

export default {

**data() {

return {

// 默认为不折叠

asideClass: ‘main - aside’

}

}**

};

②没有注册LeftNav 和TopNav

解决:在AppMain.vue中注册LeftNav和TopNav

// 导出模块

export default {

data() {

return {

// 默认为不折叠

asideClass: ‘main - aside’

}

},

components: {

TopNav,

LeftNav

}

};

③TopNav.vue中collapsed?imgshow:imgsq属性未定义(:src=“collapsed?imgshow:imgsq”  )

**:v-bind:**是vue修饰的属性

解决:在TopNav.vue中定义collapsed?imgshow:imgsq属性

export default {

**data() {

return {

collapsed: false,

imgshow: require(‘@/assets/img/show.png’),

imgsq: require(‘@/assets/img/sq.png’),**
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)


核心竞争力,怎么才能提高呢?

成年人想要改变生活,逆转状态?那就开始学习吧~

万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。

为了帮助大家更好更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。

前端面试题汇总

JavaScript

性能

linux

前端资料汇总

完整版PDF资料免费分享,只需你点赞支持,动动手指点击此处就可免费领取了

前端工程师岗位缺口一直很大,符合岗位要求的人越来越少,所以学习前端的小伙伴要注意了,一定要把技能学到扎实,做有含金量的项目,这样在找工作的时候无论遇到什么情况,问题都不会大。

,逆转状态?那就开始学习吧~

万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。

为了帮助大家更好更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。

前端面试题汇总

JavaScript

性能

linux

前端资料汇总

完整版PDF资料免费分享,只需你点赞支持,动动手指点击此处就可免费领取了

前端工程师岗位缺口一直很大,符合岗位要求的人越来越少,所以学习前端的小伙伴要注意了,一定要把技能学到扎实,做有含金量的项目,这样在找工作的时候无论遇到什么情况,问题都不会大。

  • 21
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值