我不确定这个问题听起来是否奇怪,但我想知道当我的React应用程序在没有React路由器的情况下启动时,是否有办法将查询参数添加到URL中。
这里有一些上下文。我有一种微型前端应用程序。我将Iframe用于各个应用程序,当我们单击包装应用程序中的菜单时,包装应用程序会在Iframe URL中传递一些查询字符串。包装器应用程序使用React Router,但没有一个子应用程序使用它。为了开发,现在我必须启动单独的小程序,并在URL中手动添加查询参数。为了节省一些时间,我试图在React启动时为开发环境硬编码一些参数。
就像我们可以设置PORT一样,在npm启动命令中有什么方法可以处理这个问题吗?
我当前的启动命令"start": "set PORT=41100 && env-cmd -f .env.dev react-scripts start",
我所尝试的我尝试在命令中使用BROWSER和BROWSER_ARGS,但没有成功。不确定它是否就是这样使用的。
"start": "set PORT=41100 && set BROWSER=Chrome && set BROWSER_ARGS="param=val" && env-cmd -f .env.dev react-scripts start",
一个可行的选择是在index.jsx
、中添加一点脚本
if (process.env.NODE_ENV === "development" && !window.location.search) window.location.search = "abc=xyz";
如果有人知道如何在NPM脚本中处理它,请告诉我。
React是"只是一个在javascript中运行的框架和方法&;当在浏览器中运行时,这样你就可以做任何你想做的事情"在React without X"中;因为你可以使用JS在浏览器中做任何你想做的事情,并且你总是得到JS=(
如果需要更新URL以包含查询参数,可以使用history.replaceState。如果需要读入它们,则需要URLSearchParams。React的问题主要是";你什么时候这样做";,答案通常是"0";在componentDidMount
中,在您设计为具有所有必要信息的任何组件中";。
(或者作为函数组件中的useEffect,但由于它在ever-render((上触发,在这种情况下,使用类组件只会让事情变得更容易(。