国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【前端】Vue+Element UI案例:通用后臺管理系統(tǒng)-面包屑、tag欄

這篇具有很好參考價值的文章主要介紹了【前端】Vue+Element UI案例:通用后臺管理系統(tǒng)-面包屑、tag欄。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。


參考視頻: VUE項(xiàng)目,VUE項(xiàng)目實(shí)戰(zhàn),vue后臺管理系統(tǒng),前端面試,前端面試項(xiàng)目
案例 鏈接
【前端】Vue+Element UI案例:通用后臺管理系統(tǒng)-導(dǎo)航欄(視頻p1-16) https://blog.csdn.net/karshey/article/details/127640658
【前端】Vue+Element UI案例:通用后臺管理系統(tǒng)-Header+導(dǎo)航欄折疊(p17-19) https://blog.csdn.net/karshey/article/details/127652862
【前端】Vue+Element UI案例:通用后臺管理系統(tǒng)-Home組件:卡片、表格(p20-22) https://blog.csdn.net/karshey/article/details/127674643
【前端】Vue+Element UI案例:通用后臺管理系統(tǒng)-Echarts圖表準(zhǔn)備:axios封裝、mock數(shù)據(jù)模擬實(shí)戰(zhàn)(p23-25) https://blog.csdn.net/karshey/article/details/127735159
【前端】Vue+Element UI案例:通用后臺管理系統(tǒng)-Echarts圖表:折線圖、柱狀圖、餅狀圖(p27-30) https://blog.csdn.net/karshey/article/details/127737979
【前端】Vue+Element UI案例:通用后臺管理系統(tǒng)-面包屑、tag欄(p31-35) https://blog.csdn.net/karshey/article/details/127756733
【前端】Vue+Element UI案例:通用后臺管理系統(tǒng)-用戶管理:Form表單填寫、Dialog對話框彈出(p36-38) https://blog.csdn.net/karshey/article/details/127787418
【前端】Vue+Element UI案例:通用后臺管理系統(tǒng)-用戶管理:Table表格增刪查改、Pagination分頁、搜索框(p39-42) https://blog.csdn.net/karshey/article/details/127777962
【前端】Vue+Element UI案例:通用后臺管理系統(tǒng)-登陸頁面Login(p44) https://blog.csdn.net/karshey/article/details/127795302
【前端】Vue+Element UI案例:通用后臺管理系統(tǒng)-登陸頁面功能:登錄權(quán)限跳轉(zhuǎn)、路由守衛(wèi)、退出(p45-46) https://blog.csdn.net/karshey/article/details/127849502
【前端】Vue+Element UI案例:通用后臺管理系統(tǒng)-登陸不同用戶顯示不同菜單、動態(tài)添加路由(p47-48) https://blog.csdn.net/karshey/article/details/127865621
【前端】Vue+Element UI案例:通用后臺管理系統(tǒng)-項(xiàng)目總結(jié) https://blog.csdn.net/karshey/article/details/127867638

目標(biāo)

element ui vue 網(wǎng)站案例,前端案例,vue.js,前端,ui

  • 點(diǎn)擊左邊的tab欄,如果在面包屑上沒有則添加
  • 點(diǎn)擊面包屑或tag可以進(jìn)行路由跳轉(zhuǎn)
  • tag可以刪除
  • 若刪除的是當(dāng)前頁面,則路由跳轉(zhuǎn)至下一個tag
  • 若刪除的當(dāng)前頁面是最后一個,則跳轉(zhuǎn)至前一個
  • 用vuex完成組件間的通信

代碼

0.創(chuàng)建組件、完成路由

首先,我們并沒有Mall、User等組件,我們要先創(chuàng)建它們,然后寫到路由上。至于有哪些路由,見數(shù)據(jù)MenuData

const MenuData= [
    {
      path: '/',
      name: 'home',
      label: '首頁',
      icon: 's-home',
      url: 'Home/Home'
    },
    {
      path: '/mall',
      name: 'mall',
      label: '商品管理',
      icon: 'video-play',
      url: 'MallManage/MallManage'
    },
    {
      path: '/user',
      name: 'user',
      label: '用戶管理',
      icon: 'user',
      url: 'UserManage/UserManage'
    },
    {
      label: '其他',
      icon: 'location',
      children: [
        {
          path: '/page1',
          name: 'page1',
          label: '頁面1',
          icon: 'setting',
          url: 'Other/PageOne'
        },
        {
          path: '/page2',
          name: 'page2',
          label: '頁面2',
          icon: 'setting',
          url: 'Other/PageTwo'
        }
      ]
    }
]

export default MenuData

則router下的index.js如下:

import Vue from "vue";
import VueRouter from "vue-router";
import Main from '../Views/Main'
import Home from '../Views/Home.vue'
import Mall from '../Views/Mall.vue'
import User from '../Views/User.vue'
import PageOne from '../Views/PageOne.vue'
import PageTwo from '../Views/PageTwo.vue'
Vue.use(VueRouter)

const routes=[
    // 主路由
    {
        path:'/',
        component:Main,
        redirect: '/home', // 重定向
        children:[
            // 子路由
            // 這是本次寫的部分
            { path: '/home', name: 'home', component: Home }, // 首頁
            { path: '/user', name: 'user', component: User }, // 用戶管理
            { path: '/mall', name: 'mall', component: Mall }, // 商品管理
            { path: '/page1', name: 'page1', component: PageOne }, // 頁面1
            { path: '/page2', name: 'page2', component: PageTwo }, // 頁面2
        ]
    }
]

const router = new VueRouter({
    routes
})

export default router

1.面包屑

面包屑是放在Header的。我們打開Element UI,找到對應(yīng)的組件:
element ui vue 網(wǎng)站案例,前端案例,vue.js,前端,ui

<el-breadcrumb separator="/">
  <el-breadcrumb-item :to="{ path: '/' }">首頁</el-breadcrumb-item>
  <el-breadcrumb-item><a href="/">活動管理</a></el-breadcrumb-item>
  <el-breadcrumb-item>活動列表</el-breadcrumb-item>
  <el-breadcrumb-item>活動詳情</el-breadcrumb-item>
</el-breadcrumb>

寫進(jìn)CommonHeader中:

<div class="l-content">
   <el-button @click="handleMenu" icon="el-icon-menu" size="mini"></el-button>
   <!-- 面包屑 -->
   <el-breadcrumb separator="/">
       <el-breadcrumb-item :to="{ path: '/' }">首頁</el-breadcrumb-item>
   </el-breadcrumb>
</div>

我們這里要動態(tài)綁定路由的數(shù)據(jù),點(diǎn)了某個路由才會顯示它。

注意:首頁是不管怎樣都會有的,因此首頁的路由數(shù)據(jù)是寫死在vuex的store的state中的,而其他的是動態(tài)添加的(Array.push)

2.用Vuex完成數(shù)據(jù)的通信:從Aside和Header到面包屑和tag

為什么會有組件間數(shù)據(jù)的通信呢?因?yàn)槲覀凕c(diǎn)擊路由跳轉(zhuǎn)在Aside,顯示的面包屑在Header,而tag在每一個組件都要顯示,所以它要單獨(dú)寫一個組件放進(jìn)Main中。

而組件間的通信我們用的是Vuex,這個在之前用過,具體不再贅述。

在store文件夾下的tab.js添加:

  • tagList:在state中,用于表示面包屑的數(shù)據(jù)
  • selectMenu:在mutation中,用于更新面包屑的數(shù)據(jù)
export default {
    state: {
        isCollapse: false,//導(dǎo)航欄是否折疊
        tabList: [
            {
                path: '/',
                name: 'home',
                label: '首頁',
                icon: 's-home',
                url: 'Home/Home'
            }
        ],//面包屑的數(shù)據(jù):點(diǎn)了哪個路由,首頁是一定有的
    },
    mutations: {
        // 修改導(dǎo)航欄展開和收起的方法
        CollapseMenu(state) {
            state.isCollapse = !state.isCollapse
        },
        // 更新面包屑的數(shù)據(jù)
        SelectMenu(state, item) {
            // 如果點(diǎn)擊的不在面包屑數(shù)據(jù)中,則添加
            const index = state.tabList.findIndex(val => val.name === item.name)
            if (index === -1) {
                state.tabList.push(item)
            }
        }
    }
}

要在Aside的側(cè)邊欄點(diǎn)擊事件處添加面包屑部分代碼:

clickItem(item) {
   // 防止自己跳自己的報錯
    if (this.$route.path !== item.path && !(this.$route.path === '/home' && (item.path === '/'))) {
        this.$router.push(item.path)
    }
    // 面包屑
    this.$store.commit('SelectMenu',item)
}

到這里,只要在側(cè)邊欄點(diǎn)擊了tab,就會產(chǎn)生路由跳轉(zhuǎn),且點(diǎn)擊的數(shù)據(jù)若是新產(chǎn)生的,則會添加到tagList中。加粗部分是我們上面代碼所完成的需求。

接下來我們需要將tagList中的數(shù)據(jù)在面包屑中顯示出來。在Header的面包屑部分綁定數(shù)據(jù):v-for對每一個tagList:

<!-- 面包屑 -->
<el-breadcrumb separator="/">
    <el-breadcrumb-item v-for="item in tags" 
    :key="item.path" 
    :to="{ path: item.path }">
    {{item.label}}
    </el-breadcrumb-item>
</el-breadcrumb>

js:mapState 是輔助函數(shù),不了解的話可以去看vuex官方文檔。由于本篇目的只在于做項(xiàng)目,函數(shù)功能不贅述。

import { mapState } from 'vuex'
export default {
    computed: {
        ...mapState({
            tags: state => state.tab.tabList
        })
    }
}

效果:從上到下把所有tab都點(diǎn)一遍。顯然完成了需求,但是樣式不對。
element ui vue 網(wǎng)站案例,前端案例,vue.js,前端,ui

3.面包屑樣式

面包屑樣式需求:

  • 和button同一行
  • 上下居中
  • 和左邊button有距離
  • 最后一個的字是白色(#fff)
  • 其他顏色的字是灰色(#666)

css:

.l-content {
    display: flex;
    // 上下居中
    align-items: center;

    .el-breadcrumb {
        margin-left: 15px;

        // deep 強(qiáng)制生效
        /deep/.el-breadcrumb__item {
            .el-breadcrumb__inner {
                &.is-link {
                    color: #666;
                }
            }

            &:last-child {
                .el-breadcrumb__inner {
                    color: #fff;
                }
            }
        }
    }
}

效果:
element ui vue 網(wǎng)站案例,前端案例,vue.js,前端,ui

4.tag欄結(jié)構(gòu)

tag欄在任何頁面都要出現(xiàn),說明它要單獨(dú)寫成一個組件CommonTags.vue,并放在Main中。

element ui vue 網(wǎng)站案例,前端案例,vue.js,前端,ui
在Element UI中找到tag組件:
element ui vue 網(wǎng)站案例,前端案例,vue.js,前端,ui

稍微看一下script代碼,很明顯我們用不到它。

<el-tag
  v-for="tag in tags"
  :key="tag.name"
  closable
  :type="tag.type">
  {{tag.name}}
</el-tag>

代碼中不了解的屬性(Attributes)可以在文檔中查一下。紅框中為本次會用到的屬性:
element ui vue 網(wǎng)站案例,前端案例,vue.js,前端,ui

<template>
    <div class="tabs">
        <!-- closable是否可刪除:除了"首頁"都可刪 -->
        <!-- effect:主題,當(dāng)前主題是dark,其他事plain -->
        <el-tag v-for="item in tags" :key="item.path" :closable="item.name !== 'home'"
            :effect="item.name === $route.name ? 'dark' : 'plain'">
            {{ item.label }}
        </el-tag>
    </div>
</template>

<script>
import { mapState } from 'vuex'

export default {
    computed: {
        ...mapState({
            tags: state => state.tab.tabList
        })
    }
}
</script>

<style>

</style>

5.tag事件

  • 刪除:點(diǎn)擊x刪除對應(yīng)的tag和面包屑
  • 若刪除的是當(dāng)前頁面,則路由跳轉(zhuǎn)至下一個tag
  • 若刪除的當(dāng)前頁面是最后一個,則跳轉(zhuǎn)至前一個
  • 點(diǎn)擊:點(diǎn)擊哪個tag就跳轉(zhuǎn)到哪個tag

這兩個事件分別為:(第一萬次感嘆,組件真好用)
element ui vue 網(wǎng)站案例,前端案例,vue.js,前端,ui
html:

<el-tag v-for="(item, index) in tags" :key="item.path" :closable="item.name !== 'home'"
    :effect="item.name === $route.name ? 'dark' : 'plain'" @click="changeMenu(item)"
    @close="handleClose(item, index)">
    {{ item.label }}
</el-tag>

點(diǎn)擊事件:

changeMenu(item) {
    this.$router.push({ name: item.name })
}

刪除事件:

handleClose(item, index) {
    // 刪除面包屑數(shù)據(jù)
    this.$store.commit('closeTag', item)
    // 如果刪除的剛好是自己
    if (item.name === this.$route.name) {
        const length = this.tags.length
        // 如果刪除的是最后一個:跳到前一個
        if (length === index) {
            this.$router.push({ name: this.tags[index - 1].name })
        }
        // 不是最后一個:往后一個
        else {
            this.$router.push({ name: this.tags[index].name })
        }
    }
}

store中的tab.js,在mutation里:

// 刪除tag:刪除tabList中對應(yīng)的item
closeTag(state, item) {
    // 要刪除的是state.tabList中的item
    const index = state.tabList.findIndex(val => val.name === item.name)
    state.tabList.splice(index, 1)
}

6.tag樣式

.tabs{
    padding: 20px;

    .el-tag{
        margin-right: 15px;
        // 鼠標(biāo)懸停:小手
        cursor: pointer;
    }
}

效果

element ui vue 網(wǎng)站案例,前端案例,vue.js,前端,ui

總代碼

本篇修改或新建的文件

element ui vue 網(wǎng)站案例,前端案例,vue.js,前端,ui文章來源地址http://www.zghlxwxcb.cn/news/detail-697533.html

CommonTags.vue

<template>
    <div class="tabs">
        <!-- closable是否可刪除:除了"首頁"都可刪 -->
        <!-- effect:主題,當(dāng)前主題是dark,其他事plain -->
        <el-tag v-for="(item, index) in tags" :key="item.path" :closable="item.name !== 'home'"
            :effect="item.name === $route.name ? 'dark' : 'plain'" @click="changeMenu(item)"
            @close="handleClose(item, index)">
            {{ item.label }}
        </el-tag>
    </div>
</template>

<script>
import { mapState } from 'vuex'

export default {
    methods: {
        changeMenu(item) {
            this.$router.push({ name: item.name })
        },
        handleClose(item, index) {
            // 刪除面包屑數(shù)據(jù)
            this.$store.commit('closeTag', item)
            // 如果刪除的剛好是自己
            if (item.name === this.$route.name) {
                const length = this.tags.length
                // 如果刪除的是最后一個:跳到前一個
                if (length === index) {
                    this.$router.push({ name: this.tags[index - 1].name })
                }
                // 不是最后一個:往后一個
                else {
                    this.$router.push({ name: this.tags[index].name })
                }
            }
        }
    },
    computed: {
        ...mapState({
            tags: state => state.tab.tabList
        })
    }
}
</script>

<style lang="less" scoped>
.tabs{
    padding: 20px;

    .el-tag{
        margin-right: 15px;
        // 鼠標(biāo)懸停:小手
        cursor: pointer;
    }
}
</style>

tab.js

export default {
    state: {
        isCollapse: false,//導(dǎo)航欄是否折疊
        tabList: [
            {
                path: '/',
                name: 'home',
                label: '首頁',
                icon: 's-home',
                url: 'Home/Home'
            }
        ],//面包屑的數(shù)據(jù):點(diǎn)了哪個路由,首頁是一定有的
    },
    mutations: {
        // 修改導(dǎo)航欄展開和收起的方法
        CollapseMenu(state) {
            state.isCollapse = !state.isCollapse
        },
        // 更新面包屑的數(shù)據(jù)
        SelectMenu(state, item) {
            // 如果點(diǎn)擊的不在面包屑數(shù)據(jù)中,則添加
            const index = state.tabList.findIndex(val => val.name === item.name)
            if (index === -1) {
                state.tabList.push(item)
            }
        },
        // 刪除tag:刪除tabList中對應(yīng)的item
        closeTag(state, item) {
            // 要刪除的是state.tabList中的item
            const index = state.tabList.findIndex(val => val.name === item.name)
            state.tabList.splice(index, 1)
        }
    }
}

router的index.js

import Vue from "vue";
import VueRouter from "vue-router";
import Main from '../Views/Main'
import Home from '../Views/Home.vue'
import Mall from '../Views/Mall.vue'
import User from '../Views/User.vue'
import PageOne from '../Views/PageOne.vue'
import PageTwo from '../Views/PageTwo.vue'
Vue.use(VueRouter)

const routes=[
    // 主路由
    {
        path:'/',
        component:Main,
        redirect: '/home', // 重定向
        children:[
            // 子路由
            { path: '/home', name: 'home', component: Home }, // 首頁
            { path: '/user', name: 'user', component: User }, // 用戶管理
            { path: '/mall', name: 'mall', component: Mall }, // 商品管理
            { path: '/page1', name: 'page1', component: PageOne }, // 頁面1
            { path: '/page2', name: 'page2', component: PageTwo }, // 頁面2
        ]
    }
]

const router = new VueRouter({
    routes
})

export default router

到了這里,關(guān)于【前端】Vue+Element UI案例:通用后臺管理系統(tǒng)-面包屑、tag欄的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Vue + Element-ui實(shí)現(xiàn)后臺管理系統(tǒng)---項(xiàng)目搭建 + ??布局實(shí)現(xiàn)

    Vue + Element-ui實(shí)現(xiàn)后臺管理系統(tǒng)---項(xiàng)目搭建 + ??布局實(shí)現(xiàn)

    目錄:導(dǎo)讀 項(xiàng)目搭建 + ??布局實(shí)現(xiàn) 一、項(xiàng)目搭建 1、環(huán)境搭建 2、項(xiàng)目初期搭建 二、Main.vue 三、左側(cè)欄部分(CommonAside.vue) 四、header部分(CommonHeader.vue) 五、Home.vue 寫在最后 這篇主要講解 項(xiàng)目搭建 + 后臺??布局實(shí)現(xiàn) : 整體效果 后臺首頁按布局一共包含3個部分: 1、左側(cè)欄

    2024年02月02日
    瀏覽(56)
  • VUE通用后臺管理系統(tǒng)(四)前端導(dǎo)出文件(CSV、XML、HTML、PDF、EXCEL)

    VUE通用后臺管理系統(tǒng)(四)前端導(dǎo)出文件(CSV、XML、HTML、PDF、EXCEL)

    常見的導(dǎo)出格式:CSV、XML、HTML、PDF、EXCEL 1)準(zhǔn)備工作 安裝所需相關(guān)依賴 前兩個是PDF格式需要的依賴,后兩個是excel格式所需,如果沒有需求這兩種格式的可以忽略這一步 然后畫頁面 ? 頁面效果 2)導(dǎo)出CSV格式的文件 新建src/utils/utils.js文件 寫入exportCsv方法,columns為表頭,

    2024年02月05日
    瀏覽(56)
  • Spring Boot + Vue + Element UI的網(wǎng)上商城后臺管理之訂單管理系統(tǒng)

    以下是訂單管理系統(tǒng)的思維導(dǎo)圖,展示了系統(tǒng)的主要功能和模塊之間的關(guān)系。 根節(jié)點(diǎn) 訂單列表 查看訂單列表 搜索訂單 排序訂單 導(dǎo)出訂單列表 訂單詳情 查看訂單詳情 修改訂單信息 修改商品信息 修改價格 修改收貨地址 取消訂單 處理訂單 處理訂單操作 確認(rèn)訂單 拒絕訂單

    2024年02月03日
    瀏覽(39)
  • Vue3 + Element-UI 搭建一個后臺管理系統(tǒng)框架模板

    本文將介紹如何基于Vue3和element-ui搭建一個后臺管理系統(tǒng)框架模板。我們將詳細(xì)講解代碼流程,并提供詳細(xì)的說明。 Vue3 Element-ui Axios 本文假設(shè)讀者已經(jīng)熟悉Vue3和Element-ui的基本使用方法,并且對Axios有一定的了解。 步驟1:創(chuàng)建Vue3項(xiàng)目 我們可以使用Vue CLI來創(chuàng)建一個Vue3項(xiàng)目,

    2023年04月26日
    瀏覽(63)
  • 基于VUE3+Layui從頭搭建通用后臺管理系統(tǒng)(前端篇)八:自定義組件封裝上

    基于VUE3+Layui從頭搭建通用后臺管理系統(tǒng)(前端篇)八:自定義組件封裝上

    ??本章實(shí)現(xiàn)一些自定義組件的封裝,包括數(shù)據(jù)字典組件的封裝、下拉列表組件封裝、復(fù)選框單選框組件封裝、單選框組件封裝、文件上傳組件封裝、級聯(lián)選擇組件封裝、富文本組件封裝等。 1. 詳細(xì)課程地址: https://edu.csdn.net/course/detail/38183 2. 源碼下載地址: 點(diǎn)擊下載

    2024年02月12日
    瀏覽(26)
  • 基于VUE3+Layui從頭搭建通用后臺管理系統(tǒng)(前端篇)七:工作臺界面實(shí)現(xiàn)

    基于VUE3+Layui從頭搭建通用后臺管理系統(tǒng)(前端篇)七:工作臺界面實(shí)現(xiàn)

    ??本章實(shí)現(xiàn)工作臺界面相關(guān)內(nèi)容,包括echart框架引入,mock框架引入等,實(shí)現(xiàn)工作臺界面框架搭建,數(shù)據(jù)加載。 1. 詳細(xì)課程地址: https://edu.csdn.net/course/detail/38183 2. 源碼下載地址: 點(diǎn)擊下載 基于VUE3+Layui從頭搭建通用后臺管理系統(tǒng)合集-工作臺界面布局實(shí)現(xiàn) echart官網(wǎng):https

    2024年02月14日
    瀏覽(27)
  • 基于VUE3+Layui從頭搭建通用后臺管理系統(tǒng)(前端篇)一:項(xiàng)目規(guī)劃及初始化

    基于VUE3+Layui從頭搭建通用后臺管理系統(tǒng)(前端篇)一:項(xiàng)目規(guī)劃及初始化

    ??使用vue3+Layui實(shí)現(xiàn)通用管理系統(tǒng)前端,使用vue3+layui搭建系統(tǒng)UI界面,使用nodejs搭建模擬web服務(wù)器,使用echarts實(shí)現(xiàn)系統(tǒng)可視化模塊,可以此項(xiàng)目為基礎(chǔ)進(jìn)行擴(kuò)展開發(fā),快速搭建管理系統(tǒng),具體內(nèi)容如下: ?? 1. 常見功能實(shí)現(xiàn): 實(shí)現(xiàn)用戶登錄(用戶名密碼登錄、手機(jī)驗(yàn)證碼

    2024年02月13日
    瀏覽(29)
  • 基于VUE3+Layui從頭搭建通用后臺管理系統(tǒng)(前端篇)二:登錄界面及對應(yīng)功能實(shí)現(xiàn)

    基于VUE3+Layui從頭搭建通用后臺管理系統(tǒng)(前端篇)二:登錄界面及對應(yīng)功能實(shí)現(xiàn)

    ??本章介紹系統(tǒng)登錄界面、登錄流程、登錄接口等相關(guān)內(nèi)容的開發(fā),實(shí)現(xiàn)包括賬號密碼登錄、短信驗(yàn)證登錄等不同的登錄方式,使用svg-capter生成圖形驗(yàn)證碼,使用expressjwt實(shí)現(xiàn)登錄token的生成及驗(yàn)證。 1. 詳細(xì)課程地址: https://edu.csdn.net/course/detail/38183 2. 源碼下載地址: 點(diǎn)擊

    2024年02月11日
    瀏覽(34)
  • vue-element-admin:基于element-ui 的一套后臺管理系統(tǒng)集成方案

    vue-element-admin:基于element-ui 的一套后臺管理系統(tǒng)集成方案

    1.1簡介 vue-element-admin是基于element-ui 的一套后臺管理系統(tǒng)集成方案。 GitHub地址:https://github.com/PanJiaChen/vue-element-admin 項(xiàng)目在線預(yù)覽:https://panjiachen.gitee.io/vue-element-admin 1.2安裝 如果上面的install報錯 則先執(zhí)行下面的命令,再install 2.1簡介 vueAdmin-template是基于vue-element-admin的一套

    2023年04月16日
    瀏覽(31)
  • 基于VUE3+Layui從頭搭建通用后臺管理系統(tǒng)(前端篇)三:找回密碼界面及對應(yīng)功能實(shí)現(xiàn)

    基于VUE3+Layui從頭搭建通用后臺管理系統(tǒng)(前端篇)三:找回密碼界面及對應(yīng)功能實(shí)現(xiàn)

    ??本章實(shí)現(xiàn)找回密碼功能,包括短信驗(yàn)證碼找回、郵箱驗(yàn)證碼找回等功能,并通過node-send-email發(fā)送郵箱驗(yàn)證碼,實(shí)現(xiàn)找回密碼界面、接口等功能。 1. 詳細(xì)課程地址: https://edu.csdn.net/course/detail/38183 2. 源碼下載地址: 點(diǎn)擊下載

    2024年02月12日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包