javascript – 如何在需要URI更新时避免重新安装组件(例如过滤器按钮)?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何在需要URI更新时避免重新安装组件(例如过滤器按钮)?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1881字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 如何在需要URI更新时避免重新安装组件(例如过滤器按钮)?](/upload/InfoBanner/zyjiaocheng/767/219a69f16ccf4cd793dab04dcd61c357.jpg)
使用react-router v3& redux我基本上有一个类似于以下的路由设置:
<Route name="app" path="/" component={App}>
<IndexRoute component={Catalogue} />
<Route name="brand" path="/brand/(:brand)" component={Catalogue} />
</Route>
我的目录生成异步请求以获取我的所有产品,然后将它们存储在状态中.另外,我的Catalog组件有多个品牌按钮,使用来自react-router的链接,每个链接都是这样的:
> /品牌/品牌A.
> /品牌/品牌B.
> /品牌/品牌C.
当用户点击品牌过滤器按钮时,目录具有过滤的逻辑,并且仅显示属于brandX的产品作为url参数的一部分.
在目录组件中,我有类似以下内容:
componentDidMount() {
if (this.props.params.brand) {
// this is a redux action dispatch
this.props.setBrandFilter(this.props.params.brand);
}
}
问题:
我现在的问题是,每当用户点击我的目录组件上的品牌过滤器链接时,路由器就会抓住它(好的.),我的目录组件总是被重新安装(坏事.)并再次获取我的所有产品(可怕的事情! ).获取所有产品后,它按品牌过滤列表(如果在品牌特定路线上).
基本上我需要一种方法来更新地址栏中的URL以反映品牌过滤器更改(即用户导航到/ brand / brandA)以进行分析,但我想避免:
>重新安装相同的目录组件
>重新获取所有产品
这是一个性能杀手!有谁知道怎么做这样的事情?任何提示或建议将非常感谢!
解决方法:
如果在不同的路径上将它们作为单独的组件,那么它们将被重新安装.你明确告诉它这样做.你可以采取一些措施来避免这种情况.
>不要通过组件装载触发所有数据提取.这对于小规模,琐碎的项目来说是可以的,但它会很快崩溃. flux架构专为此而设计.提前进行提取(在应用程序加载时),并将这些产品加载到商店中.
>如果你的路由表就像那样简单,那么路由器v4变得更容易的一件大事就是嵌套为页面呈现部分内容的路由. React就是处理渲染组件而不是页面,所以我们的路由器离开整个“完整网页的一个URL”的时间. react router sidebar示例是一个很好的参考.您可以将此示例应用于标题,侧边栏和页脚.您可以在您的情况下应用它,以便父< Catalog>永远不需要重新安装.
< Route name =“app”path =“/”component = {App}>
<目录>
< Route name =“brand”path =“/ brand /(:brand)”component = {BrandList} />
< /目录>
< /路由>
内容总结
以上是互联网集市为您收集整理的javascript – 如何在需要URI更新时避免重新安装组件(例如过滤器按钮)?全部内容,希望文章能够帮你解决javascript – 如何在需要URI更新时避免重新安装组件(例如过滤器按钮)?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。