页面跳转--多种

Posted by CodingWithAlice on March 20, 2020

页面跳转–多种

场景:实现一个页面跳转的时候,要通过改变路由地址来刷新当前页面内容。

参考:各种网络博客

总结:

HTML和Script

  1. <a href=''></a>

  2. window.location.href/replace(在script中可以直接执行)

window.location.href = '${location.origin}/some/where/to/go.html'
// 若跳转,并不让返回
window.location.replace(`${location.origin}/some/where/to/go.html`);
  1. 通过ref标注对象,执行定位方法直接定位到指定元素
this.$refs.rules.scrollIntoView();
  1. window.scrollTo方法
window.scrollTo(0, this.$refs.rules.offsetTop);

微信小程序里面跳转

// 会将调用该方法的页面加入堆栈
wx.navigateTo({
		url:'/some/where/to/go',
})
// 返回到上一页后,会刷新上一个页面的onShow方法
wx.navigateBack({
  delta: 2, // 返回前2页
})

注:想要被刷新的方法放在onshow()中,不想被刷新的放在onload()中;

如果整个页面都要刷新,可以将onLoad()方法在onshow()中进行调用;

其他跳转方式:

// 只能跳转到tabBar的配置页面
wx.switchTab({
  url: '/page/index',
});
// 关闭当前页面,跳转指定页面
wx.redirectTo({
 	url: `/pages/some/where/togo_code=${code}&id=${id}&a=1`,
});
// 关闭所有页面,跳转指定页面
wx.reLaunch({
  url: '/page/index',
});

vue路由跳转有四种方式

  1. <router-link :to="/home"或者"{name:'home'}"或者"{path:'/home'}">

  2. this.$router.push()this.$router.replace()this.$router.go(n)

    区别:

    push 跳转到指定url路径,并想history栈中添加一个记录,点击后退会返回到上一个页面;

    replace 跳转到指定url路径,但是history栈中不会有记录,点击返回会跳转到上上个页面 ;

    go(n) 向前或者向后跳转n个页面,n可为正整数,如1,或负整数,如-1;

注意:带参数的情况

params: {id:1}或者query: {id:1}

<router-link :to="{name:'home', params: {id:1}}"> 
// 路由配置 path: "/home/:id" 或者 path: "/home:id" 
// 不配置path ,第一次可请求,刷新页面id会消失
// 配置path,刷新页面id会保留
  
<router-link :to="{name:'home', query: {id:1}}"> 
// 路由可不配置

// html 取参  $route.params.id
// html 取参  $route.query.id
// script 取参  this.$route.params.id 
// script 取参  this.$route.query.id
this.$router.push({name:'home',query: {id:'1'}})
this.$router.push({path:'/home',query: {id:'1'}})
this.$router.push({name:'home',params: {id:'1'}})  // 只能用 name
 
// 路由配置 path: "/home/:id" 或者 path: "/home:id" ,
// 不配置path ,第一次可请求,刷新页面id会消失
// 配置path,刷新页面id会保留

// html 取参  $route.query.id
// script 取参  this.$route.query.id
// html 取参  $route.params.id
// script 取参  this.$route.params.id