我有反应路由器的React.js应用程序,我对我当前的路由处理有疑问.

设计外观如下,普通移动布局,固定页眉和页脚,内容中间:

在这种情况下它们是静态的,我可以简单地创建这样的结构

<RatchetHeader />
<RatchetFooter />
<RouteHandler />

但是偶尔他们会从一个页面到另一个页面,例如:

>标题和按钮文本
>按钮数量
>页脚不存在于某些页面上

最好把它们放在视图控制器里,然后用RouteHandler重新渲染?

解决方法

我不知道棘轮的细节,但一般来说,在你的情况下,页脚更好地把它放在RouteHandler中,这样你可以根据你的喜好来定义它的存在.

对于标题,我相信你总是喜欢在那里吗?在这种情况下,您可以将其留在处理程序之外,并将其传递给其属性,以更改其布局.

最后的结果会看起来类似于这一点(组件导入是暗示的,因此我不包括它们,以保持关注逻辑):

app.js:

<Route handler={AppHandler}>
  <DefaultRoute handler={HomeHandler}/>
  <Route name='foo' path='/foo' handler={FooHandler}/>
  <Route name='bar' path='/bar' handler={BarHandler}/>
  <NotFoundRoute handler={NotFoundHandler}/>
</Route>

);

App.react.js:

<div>
  <Header title={this.state.title}/>
  <RouteHandler {...this.props}/>
</div>

Header.react.js – 使用一些虚构的组件来说明:

var Header = React.createClass({
  render: function(){
    return (
      <div>
        <Button type="prevIoUs" title="Left"/>
        <HeaderTitle>{this.props.title}</HeaderTitle>
        <Button type="next" title="Right"/>
      </div>
    );
  }
});

module.exports = Header;

Foo.react.js:

var Foo = React.createClass({
  render: function(){
    var footeractions = [ // Ideally you'd get this from a constants file or something alike.
      {
        'actionType': 'viewHome','actionIcon': 'icon-home','actionLabel': 'Home'
      },{
        'actionType': 'viewProfile','actionIcon': 'icon-profile','actionLabel': 'Profile'
      },{
        'actionType': 'viewFavorites','actionIcon': 'icon-favorites','actionLabel': 'Favorites'
      },...
    ];
    return (
      <div>Your content here</div>
      <Footer actions={footeractions}/>
    );
  }
});

module.exports = Foo;

Footer.react.js:

var Footer = React.createClass({
  render: function(){
    var actionItems = this.props.actions.map(function(item){
      return (<ActionItem action={item.actionType} icon={item.actionIcon} label={item.actionLabel}/>);
    });
    return (
      <div>{actionItems}</div>
    )
  }
});

module.exports = Footer;

然后,在Bar.react.js中,您可以不包括< Footer>组件,像这样:

Bar.react.js:

var Bar = React.createClass({
  render: function(){
    return (
      <div>Your content here</div>
    );
  }
});

module.exports = Bar;

希望有帮助!

javascript – react.js – 反应路由器处理固定页眉和页脚的更多相关文章

  1. php – Yii2如何将布局文件拆分为单独的页眉和页脚?

    我是新来的YII2,所以这可以是非常基本的问题.我已经设置了初始申请.我有我的YII2应用程序/主题/标准的设置主题现在,有一个默认的布局文件themes/standard/layouts/main.PHP–这有标题和页脚的HTML代码我想将标题分成主题/标准/布局/header.PHP和页脚到另一个文件我在main.PHP中尝试过如下代码也试过了这个但它没有呈现内容.我不想绝对的路径,因为我有主

  2. 创建PHP页眉/页脚

    我正在为一个朋友设计一个比较简单的网站.我想暗示PHP,以便他可以改变他的页眉/页脚,而无需回到每个文件.问题是,我完全不了解PHP如何工作.这样做有一个简单的方法吗?我已经看到一些关于如何制作PHP标题的答案,但是它们似乎都不同,我没有太多的成功.我不是说他们不工作,但在这种情况下更简单,越好.谢谢!

  3. 正则表达式 – Grep中是否有真正的通用通配符?

    当我需要匹配多个字符,包括换行符时,我会:注意我使用的是非贪婪模式

  4. angular – 显示注销页面时删除页眉和页脚

    我在app.component.html中添加了以下代码在我的路由文件中,我使用下面的代码问题是,当我渲染注销页面时,页眉和页脚仍然存在.这是正确的,因为我的标题也有用户信息.第二件事是我有TempComponent和TempComponent1,当它呈现时我也必须在每个组件中显示页眉和页脚.有解决方案还是我应该改变方法?

  5. 如何在jQueryMobile的页面上保持相同的页眉/页脚?

    在导航jQueryMobile页面时,是否有一个简单的方法来保持相同的页眉/页脚?迄今为止我遇到的唯一解决方案是依靠在页面变化中动态地注入它,但这会扭转转换,只是克隆元素,我需要原始的。那是正式支持的方式吗?我觉得奇怪的是,我似乎是唯一一个挣扎着这个问题的人?要使页眉/页脚“持久化”,请在所有页面上使用相同的数据id。您还需要使用css或data-position=“fixed”来修复页眉和页脚。希望这可以帮助。

  6. visual-c – 在OLE Word自动化中搜索和替换 – 如何覆盖页眉和页脚?

    我有一个完美的工作功能来查找和替换一个变量与文本中的文本.问题是,该代码不会触及标题或页脚中的任何文本.也许pFind的执行方法有一个参数?解决方法这是一个Delphi函数,在标题中进行搜索和替换.我知道这是一个C问题,但您可以从功能中看到您需要做什么.我总是发现,在工作中做最简单的方法是使用MacroRecorder并查看文字,然后从应用程序中调用该代码.很可惜你在C中做COM编程

  7. 在Jquery移动,页眉和页脚总是隐藏,当点击页面内?

    我需要,页眉和页脚总是固定的位置。我不想像下面的url页面。..http://jquerymobile.com/demos/1.0b1/#/demos/1.0b1/docs/toolbars/bars-fullscreen.html(在上面的url,如果u点击页面内部。页眉和页脚将隐藏)。我不想这样解决方法如果任何人仍然发现这个问题,并意识到上述不再工作,像我一样,正确的方法现在是:

  8. ios – 如何使用swift在集合视图中使页眉和页脚

    如何使swift中的标题和页脚在集合视图中?

  9. perl – 如何使用PDF :: API2 :: Lite添加带图像的页眉,页脚?

    是否可以添加标题和页脚(带页码)和图像.我在下面写了代码来创建一个显示png图像的PDF文档.如果这可以通过任何其他模块轻松完成,请建议.非常感谢您回复示例代码.解决方法等待一天的SO节省了10分钟阅读模块文档.太空了,这并不困难.

  10. java – 在列表视图中查看页眉和页脚的缓存

    可以将列表视图添加页眉和页脚视图.缓存这些视图?像获取视图机制一样,确保列表中的资源再循环,并防止多余的内存消耗.页眉/页脚视图也同样照顾?不,他们不是.特别是您可以多次调用这两种方法.在这种情况下,您将具有更多的页脚/标题视图,它们将以插入的顺序显示

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部