vue3 route跳转的new tab两种方式

这篇具有很好参考价值的文章主要介绍了vue3 route跳转的new tab两种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Vue有两种类型的应用SPA和MAP,本文主要介绍的是SPA类型下面的使用方法

SPA (single page application)

单页面应用,即一个web项目就只有一个页面(即一个HTML文件)

这种类型通常都需要router来进行页面跳转. 一开始只需要加载一次js、css的相关资源。所有内容都包含在主页面,对每一个功能模块组件化。单页应用跳转,就是切换相关组件,仅仅刷新局部资源

SPA + 站内new Tab

功能:在站内以一个新页面打开跳转的路由

路由配置如下:

        {
            name: "testlog",
            path: '/dworks/log/testlog',
            component: components('SurroundingLog.tsx'),
            //用props可以将跳转链接里面的参数,注入到目标组件的props属性里面
            props: (route)=>{
                return { show:JSON.parse(route.query.show),
                         row: JSON.parse(route.query.row)};
            },
            meta: {title: '日志', roles: ['dev', 'admin'] },
        }

子组件示例如下:

const props = {
    row: {
        type: Object as PropType<ContextQueryParam>,
        default: {}
    },
    show: {
        type: Boolean as PropType<boolean>,
        default: false
    },
    pageType: {
        type: String as PropType<string>
    }
}
const SurroundingLog = defineComponent({
    name: "SurroundingLog",
    props,
    emits: ['update:show'],
    setup(props, ctx) {

    const resetData = () => {
      //业务逻辑

    }

    onMounted(()=>{
            //为了避免将 {} 识别成不为空,需要使用下面的判断方式, 不能用 if(route.query)
          if(Object.keys(route.query).length !== 0){
              resetData()
          }
        })

    
    return {resetData}
    },

    render(){

      return (

      <div>
        {this.$props.row.message}
      </div>

      )
    }

    })
export default SurroundingLog

父组件示例如下:

                    const to=router.resolve({
                        name:"surroundingLog",
                        query:{
                            show: 'true',
                            row: JSON.stringify(variables.rowContextParam),
                        }
                    })
                    window.open(to.href, "_blank");

父组件里面的跳转的时候要注意,需要使用query传字符串参数,如果是一个对象参数,则需要通过JSON的stringify方法将其转为字符串,这是因为这些参数会被拼接到http的url里面,所以仅支持字符串类型,这就是为什么要在routers路由里面入口前,通过props函数又将这些字符串参数转回props属性真正的类型的原因

        {
            name: "testlog",
            path: '/dworks/log/testlog',
            component: components('SurroundingLog.tsx'),
            //用props可以将跳转链接里面的参数,注入到目标组件的props属性里面
            props: (route)=>{
                return { show:JSON.parse(route.query.show),
                         row: JSON.parse(route.query.row)};
            },
            meta: {title: '日志', roles: ['dev', 'admin'] },
        }

SPA + 站外new Tab

站外Tab,可以使用超链接直接跳转,也可以使用router,这里记录下使用router的方法

  {
    path: '/suggestFeedback',
    name: 'suggestFeedback',
    meta: { icon:'md-headset', title: '反馈',roles:[]},
    beforeEnter(to, from, next) {
      window.open("https://www.baidu.com", '_blank')
      window.location.replace("/product/list")
    }
  }

MPA (multi page application)

多页面应用,指有多个独立页面的应用(多个html页面),每个页面必须重复加载js、css等相关资源。多页应用跳转,需要整页资源刷新。项目是由多个完整的页面组成。多页面跳转刷新所有资源,每个公共资源(js、css等)需选择性重新加载。文章来源地址https://www.toymoban.com/news/detail-491629.html

到了这里,关于vue3 route跳转的new tab两种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue实现免密登录跳转的方式

    需求背景: 最近接到这样一个需求,点击某个url要跳转到某个系统的首页。 实现思路: 首先,我们要明确一个点,系统中所有的操作都要携带Token去发送请求,而登录一般是获取Token的来源,点击url实现跳转,并不意味着,不需要登录,只是我们在点击url的过程中,去帮助用

    2024年02月15日
    浏览(41)
  • 利用vue-router跳转的几种方式

    ​1 router-link 2 this.$router.push     跳转到指定路径,并将跳转页面压入history栈中,也就是添加了一个页面记录。 3 this.$router.replace     跳转到指定路径,将history栈中的当前页面替换为跳转到的页面。 4 this.$router.go(n)     在histroy栈中向前或者向后跳转n个页面,n可为正整数或负

    2024年02月12日
    浏览(37)
  • vue3 的router跳转 - 页面同tab跳转和打开新tab跳转

    当前页需要的方法 主要是获得Vue Router实例暴露的一些方法,使用这些方法,进行路由操作 引入 调用 目标页需要的方法 主要是对传递来的参数,进行接收,比如查询参数,页面路径,标题,hash等 调用 route里面的数据会被处理成响应式 页面同tab跳转 push(to) :跳转到指定的路

    2024年02月01日
    浏览(35)
  • Taro + vue3 + js + nutUI 框架中自定义tabbar的组件封装以及页面跳转的逻辑

    1.需求:   在H5 中需要封装一个自定义的tabbar 菜单跳转 通过nut-ui 进行二次封装 2. 注意点   H5 中原生的tabbar 在ios 中会出现问题 所以进行 封装tabbar 3. 代码操作 首先全部的代码  4.解析 tabList: 菜单的内容数组  根据自己菜单的数量 来决定 const tabList = reactivemenu[]([     {    

    2024年04月17日
    浏览(33)
  • 【vue3】在setup组合式api中不能使用beforeRouterEnter,监听来源路由和跳转的目标路由

    注意了,在vue3中的setup函数中是不可以使用beforeRouterEnter这个路由守卫的,请看vue-router的官方文档  导航守卫 | Vue Router 由此可见,在使用组合式api的时候,只有update和leave守卫,不符合我们的要求。 使用 script  setup/script这种形式的脚本,无法监听来源路由 方法一、我们可以

    2024年02月13日
    浏览(26)
  • vue3中使用route、router、store的方式

    route:  (1) vue3写法:  (2) vue2写法:  router:  (1) vue3写法:  (2) vue2写法:  store:  (1) vue3写法:  (2) vue2写法:

    2024年02月13日
    浏览(30)
  • Vue3——getCurrentInstance、页面中route和router的获取方式

    getCurrentInstance() 在vue2中,可以通过this来获取组件实例,但是在vue3的setup函数中,无法通过this获取到组件实例,在setup函数中this的值是undefined,但是vue3提供了getCurrentInstance()来获取组件的实例对象; 输出结果:  可以看出,getCurrentInstance是一个方法,getCurrentInstance()是一个对

    2024年02月15日
    浏览(29)
  • 常见路由跳转的几种方式

    常见的路由跳转有以下四种: 1. router-link to=\\\"跳转路径\\\"  也可,如 2. this.$router.push() 跳转到指定的url,并在history中添加记录(即,点击回退,会退回上一个页面) 。 html中,如: 3. this.$router.replace() 跳转到指定的url, 但不会在history记录(即,点击回退 退回到上上个页) 4

    2024年02月10日
    浏览(33)
  • uniapp页面跳转的几种方式

    定义:保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。 使用: 定义:可以关闭当前界面并跳转到其他的非tabbar界面(可带参数) 使用: 定义:关闭所有页面,打开到应用内的某个页面(可带参数) 使用: 定义:跳转到 tabBar 页面,并关闭其

    2024年02月01日
    浏览(42)
  • uniapp路由跳转的六种方式

    uniapp官方文档详解: 一、uni.navigateTo保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。 注意: 页面跳转路径有层级限制,不能无限制跳转新页面 跳转到 tabBar 页面只能使用 switchTab 跳转 二、uni.redirectTo关闭当前页面,跳转到应用内的某个页面。

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包