解决导航栏按钮背景色切换,刷新页面,按钮背景色切换,页面和路径没有切换问题

news/2024/7/19 14:45:20 标签: vue, js, html

解决导航栏按钮背景色切换,刷新页面,按钮背景色切换,页面和路径没有切换问题

上篇博文中 点击导航栏切换背景色 有一个bug,如果点击第二个或者后面几个按钮,再刷新页面,按钮背景色会跳到第一个按钮上去,但是!!!,页面和页面路径还停留在当前页面,怎么解决呢

看实例

这是首页,路径和按钮背景色是对应的
在这里插入图片描述

这是第二个页面,路径和按钮背景色是对应的
在这里插入图片描述

重点来了!!!,当我刷新页面,一看

在这里插入图片描述
按钮背景色恢复到了第一个按钮上,但是,页面路径并没有改变,还是第二个页面的路径,

解决方法如下

在导航栏组件中:

  <script>
  export default {
    name: "App",
    data() {
      return {
        // 导航
        navArr: [
          { path: "/zbpb", content: "值班排班" },
          { path: "/xxjb", content: "信息接报" },
          { path: "/tfsj", content: "突发事件" },
          { path: "/txzc", content: "通信支持" },
        ],
        dynamic:'', //默认第一个
      };
    },
    methods: {
      // 点击切换导航栏背景色
      btnclick(index) {
        // 存储当前点击的背景色下标,再赋值
        localStorage.setItem('index',index);
        let labelExp=localStorage.getItem('index');
        let labelExpArr = eval('('+labelExp+')');//字符串数组转数组
        this.dynamic = labelExpArr;
      },
    },
    mounted(){
      // 刷新页面直接拿存储的下标,就不会导致一刷新又跳到第一个去了
      let labelExp=localStorage.getItem('index');
      let labelExpArr = eval('('+labelExp+')');//字符串数组转数组
      this.dynamic = labelExpArr;
    }

利用本地存储当前页面的下标,刷新的时候在mounted就会去找本地找当前下标,就不会出现上面这种情况了。
到这里就基本解决了,欢迎随时留言评论,
如果此篇博文对您有帮助,还请点点关注点点赞呐~,谢谢 ~ ~


http://www.niftyadmin.cn/n/734873.html

相关文章

element ui表格内容替换为图形,以图形展示出来

效果图&#xff1a; 核心代码 &#xff1a;formatterone’ formatter这个方法在官方文档中有介绍&#xff0c;我就不过多介绍了 这里一第一列为例&#xff1a; html <el-table-column prop"yi" align"center" label"1" width"35"…

elasticsearch的mapping

PUT /website/article/1 { "post_date": "2017-01-01", "title": "my first article", "content": "this is my first article in this website", "author_id": 11400 } 执行上面的语句&#xff0c;es会…

vue中input上传图片并显示在页面中

效果图 点击选择文件上传图片&#xff0c;图片显示在页面中。如果直接拿图片的名字是赋值不上去的&#xff0c;需要转换一下才可以渲染上去。 话不多说直接上代码&#xff1a; HTML <input change"img($event)" type"file"><br> <img :s…

luoguP2387 [NOI2014]魔法森林

https://www.luogu.org/problemnew/show/P2387 考虑先将所有边按 a 值排序&#xff0c;依次加入每一条边&#xff0c;如果这条边的两个端点 ( l, r ) 之间的简单路径中 b 的最大值大于这条边的 b 值&#xff0c;删掉最大的一条边&#xff0c;加入这条边&#xff0c;如果 l 和 r…

vue刷新当前页面,刷新数据,更新数据

第一种&#xff1a; this.$router.go(0) 这种就是让整个页面重新加载一次&#xff0c;但是会出现几秒钟的白屏情况&#xff0c;对用户体验不好。 第二种&#xff1a; location.reload() 这种跟上面类似&#xff0c;都会出现白屏情况。 第三种&#xff1a; provide / inject组合…

PHP之Trait详解

自 PHP 5.4.0 起&#xff0c;PHP 实现了一种代码复用的方法&#xff0c;称为 trait。 Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制。Trait 为了减少单继承语言的限制&#xff0c;使开发人员能够自由地在不同层次结构内独立的类中复用 method。Trait 和 Class 组合…

Echarts基本的实用属性

大家也可以去Echarts官网查看相关属性&#xff1a;echarts官网&#xff0c;下面都是我在官网中提炼和平时工作中所用到的基本常见属性以及一些特殊属性。 基本结构 <html><div id"container" style"width:100px;height:100px"><div> &l…

JavaScript 有关文件上传的总结

1.文件上传时的处理$scope.submit function(){var url $scope._datalistmodel.impexp.imp;var t_file new FormData(document.getElementById(upload_file));//id是form表单的id$http({headers : {content-type:undefined },url : url,data : t_file,method : post,t…