vue跳转页面打开新窗口,并携带与接收参数方式

yizhihongxing

Vue中,我们可以通过router实例和router-link标签来实现页面跳转。当需要在新窗口中打开一个页面并携带参数时,可以使用window.open方法和URLSearchParams对象来实现。

以下是其中一种实现方式的代码:

<template>
  <!--使用router-link标签指定跳转到新页面的路径-->
  <router-link :to="{path: '/newPage', query: {param1: 'value1', param2: 'value2'}}" target="_blank">打开新页面</router-link>
</template>
//在路由中定义新页面的路由
{
  path: '/newPage',
  name: 'NewPage',
  component: NewPage
}

//在新页面中接收参数
<template>
  <div>
    <p>参数1:{{param1}}</p>
    <p>参数2:{{param2}}</p>
  </div>
</template>
<script>
export default {
  name: 'NewPage',
  data() {
    return {
      param1: '',
      param2: ''
    }
  },
  created() {
    //获取参数
    const params = new URLSearchParams(this.$route.query)
    this.param1 = params.get('param1')
    this.param2 = params.get('param2')
  }
}
</script>

另一种实现方式是通过在新页面中直接读取浏览器地址栏中的参数值。

以下是代码示例:

<template>
  <!--使用普通的a标签打开新页面,在href中指定新页面的路径和参数-->
  <a :href="newUrl" target="_blank">打开新页面</a>
</template>
<template>
  <div>
    <p>参数1:{{param1}}</p>
    <p>参数2:{{param2}}</p>
  </div>
</template>
<script>
export default {
  name: 'NewPage',
  data() {
    return {
      param1: '',
      param2: ''
    }
  },
  created() {
    //获取参数
    const urlParams = new URLSearchParams(window.location.search)
    this.param1 = urlParams.get('param1')
    this.param2 = urlParams.get('param2')
  },
  computed: {
    //组装新窗口打开的链接地址和参数
    newUrl() {
      const baseUrl = window.location.href.split('?')[0] //获取当前页面地址,不包含参数部分
      return `${baseUrl}?param1=value1&param2=value2`
    }
  }
}
</script>

以上两种方式,都可以实现在新窗口中打开页面并携带参数,要根据实际情况选择合适的实现方式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue跳转页面打开新窗口,并携带与接收参数方式 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 使用Elemen加上lang=“ts“后编译报错

    当我们在使用Element UI开发Vue项目,并且使用TypeScript等其他语言时,在引入Element UI组件时,需要在script标签中的lang属性指定为ts,例如: <script lang="ts"> import { Component, Vue } from ‘vue-property-decorator…

    Vue 2023年5月28日
    00
  • Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器

    Vuejs入门教程 Vue生命周期 Vue生命周期是指在Vue实例创建、挂载、更新、销毁等过程中,Vue自动调用的一些方法。Vue生命周期分为以下三个阶段: 创建阶段(Initialization) 在这个阶段,Vue实例被创建并进行了一些初始化工作,如:属性的设置、数据的响应式处理、以及事件监听器的初始化等。这个阶段具体有以下生命周期钩子函数: befor…

    Vue 2023年5月27日
    00
  • vue3中使用scss加上scoped导致样式失效问题

    在Vue3中,使用SCSS预处理器编写样式时,如果在<style>标签中添加scoped属性,会导致样式失效。 原因在于,scoped属性会对样式中的选择器加上一个data-v-前缀,使其只对当前组件生效。而SCSS预处理器生成的CSS选择器在编译时无法加上前缀,导致样式无法生效。 为了解决这个问题,可以使用以下两种方法之一。 方法一:使用Vue…

    Vue 2023年5月28日
    00
  • mpvue 单文件页面配置详解

    我来为你详细讲解“mpvue 单文件页面配置详解”的完整攻略。 mpvue 单文件页面配置详解 1. 简介 mpvue 是一款使用 Vue.js 开发小程序的前端框架,可在小程序原生 API 基础上,结合 Vue.js 语法规范进行开发。 在 mpvue 中,我们可以通过单文件组件(SFC)的形式,实现对小程序页面的开发和配置。通过配置 SFC 的 temp…

    Vue 2023年5月27日
    00
  • 详解VUE中的插值( Interpolation)语法

    下面是“详解VUE中的插值(Interpolation)语法”的攻略: 1. 什么是插值语法? 插值是一种模板引擎语法,用于将数据绑定到文本或属性中。在Vue中,插值语法可以用双大括号{{}}来表示,可以在HTML文本中任意使用。 例如,在Vue模板中,我们可以使用插值语法将data数据绑定到html标签中: <div> {{message}} …

    Vue 2023年5月27日
    00
  • Vue响应式原理与虚拟DOM实现步骤详细讲解

    Vue响应式原理与虚拟DOM实现步骤详细讲解 1. Vue响应式原理 Vue的响应式原理核心是利用Object.defineProperty方法对数据进行拦截,当数据发生变化时,通知对应的界面进行更新。 1.1 监听对象 在Vue中对数据的监听由Observer对象负责,在Observer对象中使用Object.defineProperty方法对数据进行监听…

    Vue 2023年5月28日
    00
  • vue中使用vuex的超详细教程

    下面是关于vue中使用vuex的超详细教程,内容主要包括以下几个部分: vuex在vue中的作用及基本概念 在vue中引入vuex 构建vuex的基本结构 如何引用vuex中的数据和方法 示例说明 总结 1. vuex在vue中的作用及基本概念 vuex是一种状态管理模式,用于管理vue应用中的所有组件的状态,将数据交给vuex中心化管理,实现全局统一的数据…

    Vue 2023年5月28日
    00
  • Vue2.0父子组件传递函数的教程详解

    Vue2.0 父子组件传递函数的教程详解 在Vue2.0中,通过props和$emit等特性,进行组件之间数据的传递和事件的通信变得非常方便。如何在Vue2.0中实现父子组件传递函数呢?本文将详细介绍该过程。 基本思路 父子组件传递函数的基本思路,是将一个函数作为props传递给子组件,在子组件中调用该函数,从而实现子组件的一些交互行为能够改变父组件中的状态…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部