如何打开一个新界面?原生window跳转传一个对象类型如何处理?

2024-05-10 13:44

本文主要是介绍如何打开一个新界面?原生window跳转传一个对象类型如何处理?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

例如京东商城,每一个商品再打开时候都会创建一个新的界面,这如何实现的呢?

  • 实现
  • 传输对象参数的问题
    • 原因
    • 解决
      • 跳转前
      • 跳转后

实现

使用window.open(url)

传输对象参数的问题

出现Unexpected token 'p', "product={%"... is not valid JSON
SyntaxError: Unexpected token 'p', "product={%"... is not valid JSONat JSON.parse (<anonymous>)at ProductPageView (http://localhost:3000/static/js/src_view_Index_Components_ProductPage_js-node_modules_ant-design_icons_es_icons_ShoppingCartO-a12322.chunk.js:58:12) at renderWithHooks (http://localhost:3000/static/js/bundle.js:56123:22) at updateFunctionComponent (http://localhost:3000/static/js/bundle.js:59003:24) at mountLazyComponent (http://localhost:3000/static/js/bundle.js:59312:21) at beginWork (http://localhost:3000/static/js/bundle.js:60708:20) at HTMLUnknownElement.callCallback (http://localhost:3000/static/js/bundle.js:45719:18) at Object.invokeGuardedCallbackDev (http://localhost:3000/static/js/bundle.js:45763:20) at invokeGuardedCallback (http://localhost:3000/static/js/bundle.js:45820:35) at beginWork$1 (h

原因

这是由于通过url中""等这种特殊字符会被转译为其他符号,所以需要通过浏览器url地址里的方法转译回来

解决

例如当前这样的JSON传输的跳转

跳转前

    navigator(`/index/productPage?${JSON.stringify(item)}`)

跳转后

1、slice(1)去掉 ?
2、location.search就是从?开始的内容
3、decodeURIComponent转译url编码
4、最后通过JSON.parse变为对象
  const product = JSON.parse(decodeURIComponent(location.search.slice(1)));

这篇关于如何打开一个新界面?原生window跳转传一个对象类型如何处理?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/976604

相关文章

SpringBoot3.X 整合 MinIO 存储原生方案

《SpringBoot3.X整合MinIO存储原生方案》本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了... 目录SpringBoot3.X整合MinIO存储原生方案:从环境搭建到实战开发一、前言:为什么选择MinI

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

MySQL 打开binlog日志的方法及注意事项

《MySQL打开binlog日志的方法及注意事项》本文给大家介绍MySQL打开binlog日志的方法及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、默认状态二、如何检查 binlog 状态三、如何开启 binlog3.1 临时开启(重启后失效)

SpringMVC高效获取JavaBean对象指南

《SpringMVC高效获取JavaBean对象指南》SpringMVC通过数据绑定自动将请求参数映射到JavaBean,支持表单、URL及JSON数据,需用@ModelAttribute、@Requ... 目录Spring MVC 获取 JavaBean 对象指南核心机制:数据绑定实现步骤1. 定义 Ja

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序