Templates React中的模板

Templates React中的模板,templates,web,reactjs,Templates,Web,Reactjs,我一直试图通过使用它建立自己的网站来学习React,现在我非常想使用jinja2模板。我非常理解组件范例,但是我很难把更大的图景拼凑在一起 例如,假设我正在建造 对于组件,我可能会为每个图像编写一个图像卡组件,或者为每个图像的简短摘要编写一个鼠标悬停组件,等等 然而,我该如何将较大的部分组合在一起呢?在jinja2中,我可以只扩展一个基本模板或包含一个页眉/页脚。在React中,做这类事情的正确方法是什么?我想彻底摆脱传统的模板 我认为你的想法肯定是对的,你只需要再进一步扩展一下。如果您已经有了

我一直试图通过使用它建立自己的网站来学习
React
,现在我非常想使用
jinja2
模板。我非常理解组件范例,但是我很难把更大的图景拼凑在一起

例如,假设我正在建造

对于组件,我可能会为每个图像编写一个图像
卡组件
,或者为每个图像的简短摘要编写一个
鼠标悬停组件
,等等


然而,我该如何将较大的部分组合在一起呢?在
jinja2
中,我可以只扩展一个基本模板或包含一个页眉/页脚。在
React
中,做这类事情的正确方法是什么?我想彻底摆脱传统的模板

我认为你的想法肯定是对的,你只需要再进一步扩展一下。如果您已经有了“card”组件和“mouseover”组件,那么您只需要添加一个类似于“homePage”的组件,它将由其他组件组成

例如,“主页”组件中的渲染方法可能如下所示:

render() {
  var menuItems = ['sign in', 'sign up'];
  return (
    <div>
      <navbar menuItems={menuItems} />
      <card attr1="Card1" />
      <card attr1="Card2" />
    </div>
  );
}
render(){
var menuItems=[“登录”、“注册”];
返回(
);
}

我认为您的想法肯定是正确的,您只需要对其进行一点扩展。如果您已经有了“card”组件和“mouseover”组件,那么您只需要添加一个类似于“homePage”的组件,它将由其他组件组成

例如,“主页”组件中的渲染方法可能如下所示:

render() {
  var menuItems = ['sign in', 'sign up'];
  return (
    <div>
      <navbar menuItems={menuItems} />
      <card attr1="Card1" />
      <card attr1="Card2" />
    </div>
  );
}
render(){
var menuItems=[“登录”、“注册”];
返回(
);
}

React文档和其他地方都有很多关于如何组合组件的示例。你可能想在你的问题中更具体一些,并展示一些你尝试过的代码,以及你遇到的问题。我从低级的角度非常了解组件,我只是不知道如何在顶级的角度将它们粘在一起。我是不是应该“组件化”字面上是指所有内容,包括只使用一次的组件,如标题菜单以及整个页面?您的评估是正确的。一次性组件非常常见。组件化层次结构对于代码组织的价值与代码重用的价值一样(甚至更多)。在React文档和其他地方都有很多关于如何组合组件的示例。你可能想在你的问题中更具体一些,并展示一些你尝试过的代码,以及你遇到的问题。我从低级的角度非常了解组件,我只是不知道如何在顶级的角度将它们粘在一起。我是不是应该“组件化”字面上是指所有内容,包括只使用一次的组件,如标题菜单以及整个页面?您的评估是正确的。一次性组件非常常见。组件化层次结构对于代码组织的价值与代码重用的价值相同(或更多)。。。包括整页?基本上是的。事实上,您的整个页面可以是一个只包含原始HTML的组件(但出于可维护性的原因,您不希望这样做)。+1。我还要补充一点,大多数组件都应该是可组合的。因此,您可以使用
组件和路由视图组件,但也可以使用行为(如
鼠标悬停
)来扩展组件的功能,而不呈现任何新内容。行为是高阶组件(HOC),使哑组件变得智能而不改变它们。绝大多数组件应该是纯哑函数:
constheader=({title,children})=>({title}{children}
。使用起来很简单:
{/*…*/}
。明白了!我对我必须做的事情有点陌生,但感觉不太对。任何人,这都非常有帮助,谢谢一位先生。所以,所有东西都应该是一个组件…包括整个页面?基本上是的。事实上,你的整个页面可能是一个只有原始HTML的单一组件(并不是说出于可维护性的原因,您希望这样做)。+1.我还想补充一点,大多数组件都应该是可组合的。因此,您将有一个
卡组件和路由视图组件,但您也可以有行为(如
鼠标盖
)在不呈现任何新内容的情况下扩展组件的功能。行为是高阶组件(HOC),使哑组件变得智能而不改变它们。绝大多数组件应该是纯哑函数:
const Header=({title,children})=>({title}{children}
。使用起来很简单:
{/*…*/}
。明白了!我有点不知道我要做什么,但感觉不太对。任何人,这都非常有帮助,谢谢一位先生。