12.9日学习总结

1.安装less和less-loader

cnpm install  --save less less-loader@5

less-loader的版本建议不要安装太高。

2.声明式导航,可以进行页面跳转

<router-link to="/home"></router-link>

相当于a标签,但是一定要加上to

3.编程式导航  this.$router.push|replace,可以进行页面跳转

this.$router.push("/home")

声明式导航能做的,编程式导航都可以,并且编程式导航还可以处理业务逻辑,比如在进行登录跳转时,将用户名和密码保存起来。

4.组件的显示和隐藏

在配置路由时,给路由添加路由元信息meta

//router.js中配置
{
    path: '/register',
    component: Register,
    meta: {
      isHideFooter: true
    }
 },
App.vue中配置
<!-- 利用路由元信息解决当前问题好处:一行代码就可以解决 -->
    <Footer v-show="$route.meta.isShow" />

5.路由传参,参数的几种写法

1.params参数,属于路径的一部分,需要注意的是,在配置路由的时候需要占位

2.query参数,不属于路径的一部分,类似于ajax的queryString,/home?k1=v1&k2=v2

 

 

 

 

 

  6.编程式路由跳转到当前路由(参数不变),多次执行会抛出NavigationDuplicate错误

解决办法:在router.js里面加入

//需要重写VueRouter.prototype原型对象身上的push|replace方法
//先把VueRouter.prototype身上的push|replace方法进行保存一份
let originPush = VueRouter.prototype.push;
let originReplace = VueRouter.prototype.replace;
//重写VueRouter.prototype身上的push方法了
VueRouter.prototype.push = function(location, resolve, reject) {
  //第一个形参:路由跳转的配置对象(query|params)
  //第二个参数:undefined|箭头函数(成功的回调)
  //第三个参数:undefined|箭头函数(失败的回调)
  if (resolve && reject) {
    //push方法传递第二个参数|第三个参数(箭头函数)
    //originPush:利用call修改上下文,变为(路由组件.$router)这个对象,第二参数:配置对象、第三、第四个参数:成功和失败回调函数
    originPush.call(this, location, resolve, reject);
  } else {
    //push方法没有产地第二个参数|第三个参数
    originPush.call(
      this,
      location,
      () => {},
      () => {}
    );
  }
};
//重写VueRouter.prototype身上的replace方法了
VueRouter.prototype.replace = function(location, resolve, reject) {
  if (resolve && reject) {
    originReplace.call(this, location, resolve, reject);
  } else {
    originReplace.call(
      this,
      location,
      () => {},
      () => {}
    );
  }
};

调用:this.$router.push({ name: "search", params: this.$route.params });

this.$router.push({name:'addcartsuccess',query:{skuNum:this.skuNum}});

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值