第三十一章 React中路由组件和一般组件

React中,组件是应用程序的构建块。它们是可重用的,可以用于创建复杂的UIReact中有两种类型的组件:路由组件和一般组件

一般组件

一般组件是React应用程序的基本构建块。它们是可重用的,可以用于创建复杂的UI。它们不知道URL,也没有任何路由逻辑。它们只是根据传递给它们的propsstate来呈现UI

类似于下面的Header组件:

import React, { Component } from 'react'

export default class Header extends Component {
  render() {
    console.log('这是Header组件的Props',this.props)
    return (
      <div className="col-xs-offset-2 col-xs-8">
        <div className="page-header"><h2>React Router Demo</h2></div>
      </div>
    )
  }
}

他们在可以接收父组件传递给他们的自定义的标签属性props


路由组件

路由组件是知道URL并具有路由逻辑的组件。它们负责根据当前URL呈现适当的UI。它们通常用于创建导航菜单、链接和其他依赖于当前URLUI元素。

以下就是路由组件:

import { Link, Route } from 'react-router-dom'
//-------------------------------------------
 <Link className="list-group-item" to="/home">Home</Link>
 <Link className="list-group-item" to="/about">About</Link>
//-------------------------------------------
<Route path="/home" component={Home} />
<Route path="/about" component={About} />

在此示例中,使用了react-router-dom库中的Link组件来创建指向应用程序中不同页面的链接。当单击链接时,路由组件将根据当前URL呈现适当的UI


路由组件与一般组件的区别

  • 1、写法不同

一般组件<Demo/>

路由组件<Route path="/demo" component={Demo}/>

  • 2、存放位置不同

一般组件:一般放在**components目录**下面

路由组件:一般放在**pages目录**下面

  • 3、接收到的Props不同

一般组件:写组件标签时传递了什么,就能收到什么

路由组件:主要接收固定的三个属性(historylocationmatch

history:
    go: ƒ go(n)
    goBack: ƒ goBack()
    goForward: ƒ goForward()
    push: ƒ push(path, state)
    replace: ƒ replace(path, state)

location:
    pathname:/about”
    search: “”
    state: undefined

match:
    params: {}
    path:/about”
    url:/about”

常用的路由组件有哪些

  • BrowserRouter:这个组件用于包装整个应用程序,并为应用程序提供路由功能。

  • Route:这个组件用于定义应用程序中的路由。它有两个属性:pathcomponentpath 属性用于定义路由的 URL 路径,component 属性用于指定匹配路由时应该渲染的组件。

  • Switch:这个组件用于包装一组 Route 组件,并确保只有一个 Route 组件被渲染。当您有多个路由匹配相同的 URL 路径时,这非常有用。

  • Link:这个组件用于在应用程序的不同路由之间创建链接。它有一个 to 属性,用于指定链接的 URL 路径。

  • NavLink: 一个特殊版本的 Link,当它与当前 URL 匹配时,为其渲染元素添加样式属性。


详情参考:

印记中文-React Router

React路由详解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天界程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值