SPA项目开发之首页导航栏+左侧菜单,前端面试题选择题

文章讲述了在Vue项目中使用LeftNav.vue和TopNav.vue组件的配置过程,包括菜单项、路由设置以及解决组件未定义、图片路径问题。还介绍了如何通过三元运算符实现组件状态切换和左侧树的折叠功能。
摘要由CSDN通过智能技术生成

②、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’),**

**}

}**

}

要通过require(‘@/’)添加图片的地址(注意/表示src目录下的文件)

collapsed?imgshow:imgsq

三元运算符,当collapsed为true时选择第一个(imgshow),当collapsed为false时选择第二个(imgsq)

将下面不用的属性删除

@open=“handleOpen” @close=“handleClose”

:collapse-transition=“bb”

到这里项目就没有报错了

三,左侧树收缩功能

==========

但是点击收起图标会报错,因为没有定义方法

解决:

①、增加实例

src/main.js

new Vue({

el: ‘#app’,

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img
img
img
img

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

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
img

Vue

  • 什么是MVVM?

  • mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合?

  • 组件之间的传值?

  • Vue 双向绑定原理

  • 描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?

  • 虚拟 DOM 实现原理

  • Vue 中 key 值的作用?

  • Vue 的生命周期

  • Vue 组件间通信有哪些方式?

  • vue 中怎么重置 data?

  • 组件中写 name 选项有什么作用?

  • Vue 的 nextTick 的原理是什么?

  • Vuex 有哪几种属性?

    开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

链图片转存中…(img-4T1iAkft-1710836358494)]
[外链图片转存中…(img-MIPzpTP6-1710836358494)]
[外链图片转存中…(img-LVgO5vs1-1710836358495)]

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

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
[外链图片转存中…(img-48Fy4P54-1710836358496)]

Vue

  • 什么是MVVM?

  • mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合?

  • 组件之间的传值?

  • Vue 双向绑定原理

  • 描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?

  • 虚拟 DOM 实现原理

  • Vue 中 key 值的作用?

  • Vue 的生命周期

  • Vue 组件间通信有哪些方式?

  • vue 中怎么重置 data?

  • 组件中写 name 选项有什么作用?

  • Vue 的 nextTick 的原理是什么?

  • Vuex 有哪几种属性?

    开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值