开发搜索模块以及优化

搜索模块设置

开发search模块下面的全局typenav商品分类菜单

Typenav在home页面下显示(默认情况下也是为显示状态)

在搜索页面之下隐藏 在这里我们做了一个判断是在哪一个页面之下(如果不是home路由组件将typenav进行隐藏)

// 组件挂载完毕 可以向服务器发请求
  mounted() {
    // 当组件挂载成功,让show属性变为false
    // 如果不是Home路由下组件 将typeNav进行隐藏
    if (this.$route.path != "/home") {
      this.show = false;
    }

当鼠标移入时 让商品分类列表进行展示

// 当鼠标移入时 让商品分类列表进行展示
    enterShow() {
      if (this.$route.path != "/home") {
        this.show = true;
      }
    },
    // 当鼠标离开的时候 让商品分类列表进行隐藏
    leaveShow() {
      this.currentIndex = -1;
      //判断如果是Search路由组件的时候才会执行
      if (this.$route.path != "/home") {
        this.show = false;
      }
    }

开发搜索模块中的typenav商品分类的过度动画效果

过度动画必须条件,元素务必要有v-if/v-show指令才可以进行过度动画设置

包含在transition中,并在其中设置name属性

 //过渡动画开始状态(进入)
    .sort-enter {
      height: 0px;
    }
    // 过渡动画结束状态(进入)
    .sort-enter-to {
      height: 461px;
    }
    // 定义动画时间、速率
    .sort-enter-active {
      transition: all 0.5s linear;
    }

商品分类的优化

派发一个action 获取商品分类的三级列表的数据(放在app.vue里面来),页面显示就开始加载

 mounted() {
    // 通知vuex发请求 获取商品分类的三级列表数据
    this.$store.dispatch("getcategoryList");
  },

合并参数

TypeNav在路由跳转之前进行判断,如果路由跳转的时候,带有params参数,捎带传递过去

如果路由中有params参数,就需要一起传递过去。

 if (this.$route.params) {
          loction.params = this.$route.params;
          //动态给location配置对象添加query属性 整理完参数
          loction.query = query;
          //路由跳转
          this.$router.push(loction);
        }

跳转的回调函数

goSearch() {
      if (this.$route.query) {
        let loction = {
          name: "search",
          params: { keyword: this.keyword || undefined },
        };
        loction.query = this.$route.query;
        this.$router.push(loction);
      }
    },

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值