×

vue slice

vue slice(vue动态路由)

admin admin 发表于2024-09-24 02:53:42 浏览4 评论0

抢沙发发表评论

各位老铁们,大家好,今天由我来为大家分享vue slice,以及vue动态路由的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

本文目录

vue动态路由

《template》   《el-container style="height: 100vh; border: 1px solid #eee"》     《el-aside width="200px" style="background-color: rgb(238, 241, 246)"》       《!-- :default-openeds="" 表示默认打开第一个和第三个菜单 --》       《!-- 1 对应了el-submenu index="1"            2 对应了el-submenu index="2" --》       《!-- el-submenu index="1-1 表示把el-submenu当作是第一个导航的第一个子项--》       《!--  :router="true 使用 vue-router 的模式,启用该模式会在激活导航时以 index 作为 path 进行路由跳转 --》       《!-- default-active="/index/users" --》       《!-- ★  :default-openeds 不可以直接使用 需要使用一个变量openList代替 因为值随时会变 如果写的       是 那么就永远不会改变 会出现点击二级菜单 一级菜单会缩起来的情况--》       《!-- default-active="/index/users" 表示一进入页面就默认激活/index/user导航菜单       default-active不能直接写死值路径要用变量代替 使用监听器 监听路由解决 --》       《!-- unique-opened  是否只保持一个子菜单的展开 boolean 默认是false--》       《el-menu         :default-openeds="openList"         :router="true"         :default-active="pagepath"         :unique-opened="true"       》         《!-- index接收的字符串类型,(i+1)是数字类型,所以使用toString方法转成字符串 传给index --》         《!-- 因为i是从0开始的 所以需要加1 --》         《el-submenu           :index="(i + 1).toString()"           v-for="(v, i) in navList"           :key="i"         》           《template slot="title"             》《i class="el-icon-menu"》《/i》{{ v.authName }}《/template           》           《!-- 子选项需要改成例如:1-1格式 以字符串的形式传给index属性 --》           《!-- 因为子选项也是一个数组所以需要再次循环 --》           《!-- :index="’/index/’+item.path" 路径最前面必须加上/ 否则会出现路径覆盖的问题 --》           《el-menu-item             :index="’/index/’ + item.path"             v-for="(item, index) in v.children"             :key="index"             》{{ item.authName }}《/el-menu-item           》         《/el-submenu》       《/el-menu》     《/el-aside》     《el-container》       《el-header style="text-align: right; font-size: 12px"》         《el-dropdown》           《i class="el-icon-setting" style="margin-right: 15px"》《/i》           《el-dropdown-menu slot="dropdown"》             《el-dropdown-item》查看《/el-dropdown-item》             《el-dropdown-item》新增《/el-dropdown-item》             《el-dropdown-item》删除《/el-dropdown-item》           《/el-dropdown-menu》         《/el-dropdown》         《span》王小虎《/span》       《/el-header》       《el-main》         《router-view》《/router-view》       《/el-main》     《/el-container》   《/el-container》 《/template》 《script》 import axios from "axios"; export default {   data() {     return {       navList: ,       openList: ,       pagepath: "/index/users",     };   },   watch: {     /* 当路由发生变化的时候,就把最新的地址给到pagepath变量     作用是为了保持路由菜单栏的高亮显示 以及解决点击不跳转的bug */     $route: {       handler: function (newV) {         this.pagepath = newV.path;       },       immediate: true,     },   },   created: function () {     this.getNavList();   },   methods: {     getNavList: function () {       axios         .get("/mock/menu.json", {           headers: {             Authorization: localStorage.token,           },         })         .then((res) =》 {           let { data, meta } = res.data;           /* 数据获取成功 */           if (meta.status == 200) {             this.navList = data;             /* 动态添加路由菜单 */             /* 因为第一个路由是默认,所以我们从第二个路由开始动态添加 */             /* slice不会改变原数据 而splice会 */             let arr = this.navList.slice(1,3);             /* 循环路由数组 动态添加路由 */             arr.forEach(v =》 {               /* 我们尽量使用v.children.path 原因是我们的路径名用的是子路由的 */               /* 如果我们直接写死v.children.path 会导致只有一个子路由路径被动态添加了               如果有多个,就无法生效了,所以我们要二次循环v.children,从而实现多个二级子路由               能够被动态的添加 */               v.children.forEach(r=》{                 this.$router.addRoute("index", {                   path: r.path,                   name: r.path,                   /* 把名字改成我们页面的名称 例如CategoriesView.vue */                   component: () =》 import(`@/views/${r.path.substring(0,1).toUpperCase()+r.path.substring(1)}View.vue`),                 });               })             });             console.log(this.$router)          } else {             /* 防止数据获取失败,给出相应的后台提示 */             this.$message.error(meta.msg);           }         })         .catch((err) =》 {           console.log(err);         });     },   }, }; 《/script》 《style scoped》 .el-header {   background-color: #b3c0d1;   color: #333;   line-height: 60px; } .el-aside {   color: #333; } 《/style》

vue 里el-pagination 分页设置全部

vue 里el-pagination 分页设置全部?首先使用el-pagination组件。@size-change在每页数据的个数发生改变时触发。@curren-change在页数发生改变时触发。数据源定义的数据,默认展示第一页,页面数据10条  方法触发时的操作。每页数据个数发生改变时触发handleSizeChange(size),参数size即是选择的每页数据的数量。页数发生改变时触发handleCurrentChange(current),current即是选择的页面。在web开发过程中,通常使用表格展示数据,在数据较多时采用分页的方式展示给用户。分页方式有前端假分页和后端分页两种实现方式,此文仅记录前端假分页实现方式。第一步:添加分页组件(el-pagination)在表格下方,添加的代码如下所示:第二步:添加分页所需的变量,如下所示:第三步:添加相应的分页方法,如下所示:第四步:修改查询按钮逻辑,在成功查询后,更新数据的总数量。代码如下所示:第五步:使用slice实现前端的假分页,最终vue文件中的主要代码如下所示:最终效果如下所示:

关于vue slice,vue动态路由的介绍到此结束,希望对大家有所帮助。