Javascript 如何在react.js中创建可重用组件或部分组件?

Javascript 如何在react.js中创建可重用组件或部分组件?,javascript,reactjs,web,web-deployment,Javascript,Reactjs,Web,Web Deployment,第一次使用React.js时,我想做一些非常简单的事情 我创建了一个app.js,它加载了包含我的导航的初始页面,并弹出了儿童道具 我不想将导航放在app.js文件中,而是想创建另一个组件或部分组件来渲染它 代码如下: import React, { Component } from 'react'; import NavLink from './components/NavLinks/NavLinks' import './App.css'; import { Link } from 'rea

第一次使用React.js时,我想做一些非常简单的事情

我创建了一个app.js,它加载了包含我的导航的初始页面,并弹出了儿童道具

我不想将导航放在app.js文件中,而是想创建另一个组件或部分组件来渲染它

代码如下:

import React, { Component } from 'react';
import NavLink from './components/NavLinks/NavLinks'
import './App.css';
import { Link } from 'react-router';

class App extends Component {
  render() {
    return (
      <div className="App">
        <nav>
          <li><NavLink to="/">Home</NavLink></li>
          <li><NavLink to="/contact" activeClassName="active">Contact</NavLink></li>
          <li><NavLink to="/bad-link" activeClassName="active">Bad Link</NavLink></li>
        </nav>

        <div className='container'>
          {this.props.children}
        </div>
      </div>
    );
  }
}

export default App;
import React,{Component}来自'React';
从“./components/NavLinks/NavLinks”导入导航链接
导入“/App.css”;
从“反应路由器”导入{Link};
类应用程序扩展组件{
render(){
返回(
  • 接触
  • 坏链接
  • {this.props.children} ); } } 导出默认应用程序;
    我想要的是:

    class App extends Component {
      render() {
        return (
          <div className="App">
    
            {-- Some component or partial here to render the nav --}
    
            <div className='container'>
              {this.props.children}
            </div>
          </div>
        );
      }
    }
    
    export default App;
    
    类应用程序扩展组件{
    render(){
    返回(
    {--此处的某个组件或部分用于呈现导航--}
    {this.props.children}
    );
    }
    }
    导出默认应用程序;
    
    这样写:

    import Nav from './nav'; // import here change the path according to your folder structure 
    
    class App extends Component {
      render() {
        return (
          <div className="App">
    
            <Nav/>
    
            <div className='container'>
              {this.props.children}
            </div>
    
          </div>
        );
      }
    }
    
    export default App;
    
    首先创建一个单独的组件,该组件只包含应用程序的
    导航部分,如下所示:

    class Nav extends Component {
      render() {
        return (
           <div>
              <nav>
                 <li><NavLink to="/">Home</NavLink></li>
                 <li><NavLink to="/contact" activeClassName="active">Contact</NavLink></li>
                 <li><NavLink to="/bad-link" activeClassName="active">Bad Link</NavLink></li>
              </nav>
           </div>
        );
      }
    }
    
    export default Nav;
    
    这样写:

    import Nav from './nav'; // import here change the path according to your folder structure 
    
    class App extends Component {
      render() {
        return (
          <div className="App">
    
            <Nav/>
    
            <div className='container'>
              {this.props.children}
            </div>
    
          </div>
        );
      }
    }
    
    export default App;
    
    首先创建一个单独的组件,该组件只包含应用程序的
    导航部分,如下所示:

    class Nav extends Component {
      render() {
        return (
           <div>
              <nav>
                 <li><NavLink to="/">Home</NavLink></li>
                 <li><NavLink to="/contact" activeClassName="active">Contact</NavLink></li>
                 <li><NavLink to="/bad-link" activeClassName="active">Bad Link</NavLink></li>
              </nav>
           </div>
        );
      }
    }
    
    export default Nav;
    

    理想的方法是制作一个无状态的功能组件。由于您没有根据导航组件的状态进行更改,因此可以将其作为一个轻量级无状态功能组件,只为您呈现所需的视图

    const navRenderer = () => {
         <nav>
             <li><NavLink to="/">Home</NavLink></li>
             <li><NavLink to="/contact" activeClassName="active">Contact</NavLink</li>         
             <li><NavLink to="/bad-link" activeClassName="active">Bad Link</NavLink</li>
         </nav>
        }
    
    export default navRenderer;
    
    const-navRenderer=()=>{
    

  • 联系实现这一点的理想方法是创建一个无状态功能组件。由于您没有根据导航组件的状态进行更改,因此可以将其作为一个轻量级的无状态功能组件,只为您呈现所需的视图

    const navRenderer = () => {
         <nav>
             <li><NavLink to="/">Home</NavLink></li>
             <li><NavLink to="/contact" activeClassName="active">Contact</NavLink</li>         
             <li><NavLink to="/bad-link" activeClassName="active">Bad Link</NavLink</li>
         </nav>
        }
    
    export default navRenderer;
    
    const-navRenderer=()=>{
    

  • 联系您可以创建另一个组件作为
    NavLinks
    ,由于它没有任何状态,您可以将其创建为无状态组件,并在
    应用程序中导入

    const NavLinks= () => {
             <nav>
                 <li><NavLink to="/">Home</NavLink></li>
                 <li><NavLink to="/contact" activeClassName="active">Contact</NavLink</li>         
                 <li><NavLink to="/bad-link" activeClassName="active">Bad Link</NavLink</li>
             </nav>
            }
    
    export default NavLinks;
    
    const NavLinks=()=>{
    

  • 联系您可以创建另一个组件作为
    NavLinks
    ,由于它没有任何状态,您可以将其创建为无状态组件,并在
    应用程序中导入

    const NavLinks= () => {
             <nav>
                 <li><NavLink to="/">Home</NavLink></li>
                 <li><NavLink to="/contact" activeClassName="active">Contact</NavLink</li>         
                 <li><NavLink to="/bad-link" activeClassName="active">Bad Link</NavLink</li>
             </nav>
            }
    
    export default NavLinks;
    
    const NavLinks=()=>{
    
  • 接触