首页 > 其他分享 >Vue3中url传递参数通过全局前置守卫接收参数,利用store存储并控制DOM显示或隐藏(记录一个困扰了自己的一个Bug)

Vue3中url传递参数通过全局前置守卫接收参数,利用store存储并控制DOM显示或隐藏(记录一个困扰了自己的一个Bug)

时间:2023-02-24 19:46:46浏览次数:50  
标签:const DOM url state 参数 router hidden 横条 store

业务场景: 根据路由传递的标志eg: hidden来控制侧边栏和横条显示或隐藏
核心代码:

    <a-layout-header class="header" v-if="!(parseInt(hidden) === 1 ? true : false)">
      <layout-header/>
    </a-layout-header>

主要业务代码

Vuex(Store)中设置hidden存储控制标志位
const user = {
	namespaced: true,
	state: {
		// 用户信息
		userInfo: {},
		// 添加投票基础信息 第一步
		subjects: {},
		// 添加投票题目 第二步
		topic: [],
		// 0是显示 1是隐藏
		hidden: 0,
	},
	mutations: {
		// 设置侧边栏和横条
		setHidden(state, data) {
			console.log('state.hidden', state.hidden)
			state.hidden = data;
		},
}
路由全局守卫存储标志
import {permission} from './permission'
import {constantRoutesMap} from './router'
import {createRouter, createWebHashHistory} from 'vue-router'
// 在route.js中引入就好了
import store from "@/store/index";

// 实例化路由
const router = createRouter({
    // history: createWebHashHistory('/syfb/'),
    history: createWebHashHistory(''),
    routes: constantRoutesMap
})

router.beforeEach(function (to, from, next) {
    // true 显示侧边栏和横条
    // false 隐藏侧边栏和横条
    let hidden = to.query.hidden;
    if (!(parseInt(store.state.user.hidden) === 1)) {
        store.commit("user/setHidden", hidden);
    }
    next()
})

permission(router)

export default router

使用隐藏或显示标志位
    const store = useStore()
    const collapsed = ref(false)
    const route = useRoute();
    // 1 开启,0关闭
    const hidden = ref(1);
    hidden.value = store.state.user.hidden;
    if (hidden.value === undefined || hidden.value === '') {
      hidden.value = 3;
    }

标签:const,DOM,url,state,参数,router,hidden,横条,store
From: https://www.cnblogs.com/openmind-ink/p/17152901.html

相关文章

  • 3.引入路由 react-router-dom V6
    需要先下载路由  npminstallreact-router-dom【版本:6.8.1】 安装antd的icons:  npminstall--save@ant-design/icons【版本:5.0.1】 前台路由的拆分如......
  • 记录因net.ipv4.tcp_tw_recycle=1内核参数导致ssh登录不上的问题
    机器配置了 net.ipv4.tcp_tw_recycle=1 ,表示开启TCP连接中TIME-WAITsockets的快速回收。这种配置会导致一个问题,当服务是一个网关类的应用的时候且访问量很大的时候容......
  • get方式传递参数
    1.springboot之间传递dto在上一个feign中写入注解@GetMapping("/operationDevice/queryOperationDevices")publicList<OperationDevice>queryOperationDevic......
  • vue 方法中传参,传入变量名,参数是变量名怎么传?this[name]
    需求:在方法中传参,传的参作为方法中的变量名解决方案:当需要传变量名的时候用this[name]的方式,调用时全变量名不用再写this.,调用时以字符串形式传入'name'。 方法中传......
  • C语言可变参数的使用详解
    一、可变参数表介绍c/c++语言具备一个不同于其他编程语言的的特性,即支持可变参数。例如C库中的printf,scanf等函数,都支持输入数量不定的参数。例如:printf("hello world......
  • SkeyeLive中DShow本地采集视频参数设置及可能出现的错误提示详解
    在近期发布的SkeyeLive多窗口版本中,由于界面的局限性,选择性的将本地采集的音视频参数设置在界面上剔除掉了(暂时还没想好放在哪里,后续版本会在界面调整后添加),大家可以查看Ske......
  • 富士色彩-功能参数
    图像大小L,M,S图片的分辨率为L>M>S,L表示大,M表示中,S表示小。画质画质上RAW>FINE>Normal,最高画质存储为RAW,适合各种深度后期操作。缺点是需要用PS等软件打开,喜欢高......
  • java后台接收参数为枚举,postman的json如何传入
    使用postman测试接口,其中一个参数为枚举类型,如何传入参数?1枚举类型:publicenumUserCourseOrderSourceType{USER_BUY(1,"用户下单购买"),OFFLINE_BUY(2,"后台......
  • Spider理论系列-urllib
    tnnd,u1s1,爬取jd是真的der,尤其是要根据高级筛选查goods的url,这叫一个麻烦,博主目前正在小小的爬一些数据,等后整理出来jd的会发一篇实战的文章前情摘要一、web请求全过程......
  • 微信小程序与内嵌h5页面之间的参数传递
    https://blog.csdn.net/weixin_46032911/article/details/128506919小程序是采用vue+taroui技术栈1.内嵌h5页面向小程序传参:1h5页面所在文件:h5.vue//页面跳转函数--前......