使用react创建单页面项目

react创建单页面项目并且组件传值

  • 首先在app.js中配置路由,这里是通过react-router-dom这个自带的组件完成的
    • 定义一个class类在里面进行单页面的创建,并且此文件还可以创建其他的页面以及多个单页面项目
import React, { Component } from 'react';
import { BrowserRouter as  Router , Route,  Switch} from 'react-router-dom'
import home './components/home/home.js'
class App extends Component {
  render() {
    return (
      <Router>
        <Switch>
		    <Route strict path="/xxx/home" component={home} />
		</Switch>
      </Router>
	)
  }
}
  • 然后在home.js文件中
    • 主要是通过Router组件进项渲染,
    • 在渲染的过程中, 如果要给子组件传值,必须要写成render方法渲染子组件才可以正确传值
<Route strict path="/pxr/home/search" render={() => {
    return <Search list={this.state.searchList}></Search>     
}} />

组件传值

  • 如果要由子组件给父组件传值 , 同样也需要写成render方法渲染, 然后在子组件标签上添加一个方法,在子组件中通过this.props.方法名()触发
// 父组件
<Route strict path="/pxr/home/home" render={() => {
    return <HomePage getChildMsg={this.handleMsg} />
}} />

// 子组件
this.props.getChildMsg(item)
  • 下面是全部代码, 希望对大家有帮助
import React, { Component } from 'react'
import search from '../images/pxr3.png'
import { BrowserRouter as  Router , Route, Link} from 'react-router-dom'
import HomePage from './homePage'
import SmallLoan from './SmallLoan'
import Search from './Search'
import DistailPage from './DistailPage'
import { message } from 'antd';

class Mouth extends Component {
  constructor (props) {
    super (props)
    this.state = {
      disName: '',
      search: '',
      searchList: []
    } 
  }
  componentWillMount () {}
  componentWillReceiveProps (newProps) {}
  // 设置搜索值
  setSearch = (e) => {}
  // 搜索功能
  toSearch = async (e) => {}
  // 重置种类标签
  backHome = () => {}
  // 设置种类标签
  handleMsg = (msg) => {}
  render () {
    return (
      <div className='mouth'>
        <Router>
          <div>
            <div className="mouth_head">
              <div className="mouth_img">
                <Link to="/pxr/home/home" onClick={this.backHome}><img src={require('../images/logo1.png')} alt=""/></Link>  
                <span >{this.state.disName}</span>
              </div>
              <div className="mouth_inp">
                <input style={img1} type="text" value={this.state.search} onChange={this.setSearch} placeholder="请输入搜索信息" />
                <Link to="/pxr/home/search" onClick={(e)=>this.toSearch(e)} ><button>搜 索</button></Link>
              </div>
            </div>
            
            <Route strict path="/pxr/home/home" render={() => {
              return <HomePage getChildMsg={this.handleMsg} />
            }} />
            <Route strict path="/pxr/home/small" component={SmallLoan} />
            <Route strict path="/pxr/home/search" render={() => {
              return <Search list={this.state.searchList}></Search>     
            }} />
            <Route strict path="/pxr/home/distail" component={DistailPage} />
          </div>
        </Router>
      </div>
    )
  }
}
export default Mouth
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于使用 Umi 和 React 构建页面应用,可以按照以下步骤进行: 1. 安装 Umi:首先,确保你的项目已经安装了 Node.js,然后在命令行中运行以下命令来全局安装 Umi: ``` $ npm install -g umi ``` 2. 创建项目:在命令行中进入你想要创建项目的目录,并运行以下命令来创建一个空的 Umi 项目: ``` $ mkdir my-app $ cd my-app $ umi init ``` 运行 `umi init` 命令后,会出现一个交互式的命令行界面,你可以根据自己的需求选择相应的选项(例如选择使用 TypeScript 或 JavaScript)来初始化项目。 3. 编写页面和组件:在 `src/pages` 目录下创建你的页面文件(例如 `index.tsx`),以及在 `src/components` 目录下创建你的组件文件。在这些文件中,你可以使用 React 来编写前端页面和组件的逻辑。 4. 配置路由:在 `config/config.ts` 文件中配置你的路由信息。你可以使用 Umi 提供的路由配置功能来定义不同路径下的页面。 5. 运行开发服务器:在命令行中运行以下命令来启动开发服务器,并在浏览器中查看你的应用程序: ``` $ umi dev ``` 运行成功后,你可以通过访问 `http://localhost:8000` 来查看你的应用程序。 这只是一个简的示例来帮助你开始使用 Umi 和 React 构建页面应用。你可以根据自己的需求,进一步学习和使用 Umi 提供的其他功能和插件来开发更复杂的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值