前言:
在上一篇博客中实现了左侧菜单栏,今天我就来实现与后台的交互即动态的展示数据库的数据,还有数据表格的实现以及分页。
要确定静态树形菜单的排版 再通过后台获取树形节点的数据 通过拿到的数据,渲染树形节点 v-for 渲染节点 定义渲染节点的变量
ElementUI官网:
Element - The world's most popular Vue UI frameworkhttps://element.eleme.cn/#/zh-CN/component/pagination
{{m.text}}
{{m2.text}}
关于default-active="$route.path"介绍
在Vue中,default-active是一个用于设置导航栏默认激活项的属性。它的值可以通过$route.path来动态获取当前路由的路径。
通常,在使用Vue的路由器(Vue Router)时,可以通过设置default-active来根据当前路由来设置导航栏的默认激活项。
具体用法如下:
首先,确保已经安装并配置了Vue Router。
在导航栏组件中,找到对应的菜单项,并使用v-bind指令绑定default-active属性,例如:
主页 以上代码中的default-active属性使用了$route.path === '/home’表达式来判断当前路由是否是主页,如果是则会给该菜单项添加一个默认激活的样式。
- 当路由切换时,default-active会根据$route.path的变化自动更新,确保当前路由所对应的菜单项保持激活状态。
总结起来,default-active="$route.path"的含义是将导航栏的默认激活项与当前路由的路径进行绑定,实现动态设置导航栏的激活状态。这样可以根据当前路由的变化,自动更新导航栏的样式,提升用户体验
定义组件的和路由的关系
index.js
import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import AppMain from '@/components/AppMain'
import LeftNav from '@/components/LeftNav'
import TopNav from '@/components/TopNav'
// 导入Login登录组件
import Login from '@/views/Login'
// 导入Login登录组件
import Register from '@/views/Register'
import AddBook from '@/views/book/AddBook'
import BookList from '@/views/book/BookList'
Vue.use(Router)
export default new Router({
routes: [{
path: '/',
name: 'Login',
component: Login
},
{
path: '/Register',
name: 'Register',
component: Register
},
{
path: '/HelloWorld',
name: 'HelloWorld',
component: HelloWorld
},
{
path: '/AppMain',
name: 'AppMain',
component: AppMain,
children:[{
path: '/TopNav',
name: 'TopNav',
component: TopNav
}, {
path: '/LeftNav',
name: 'LeftNav',
component: LeftNav
},
{
path: '/book/AddBook',
name: 'AddBook',
component: AddBook
}, {
path: '/book/BookList',
name: 'BookList',
component: BookList
}]
}
]
})
action.js
/**
* 对后台请求的地址的封装,URL格式如下:
* 模块名_实体名_操作
*/
export default {
'SERVER': 'http://localhost:8080', //服务器
'SYSTEM_USER_DOLOGIN': '/user/userLogin', //登陆
'SYSTEM_USER_DOREG': '/user/Register', //注册
'SYSTEM_MENUS': '/module/queryRootNode', //左侧菜单树
'BOOK_LIST': '/book/queryBookPager', //书籍列表
'getFullPath': k => { //获得请求的完整地址,用于mockjs测试时使用
return this.SERVER + this[k];
}
}
BookList.vue
查询
效果展示: