初学React,制作案例页面1

本文介绍了初学者如何使用React和react-bootstrap构建一个包含登录功能的页面。首先,通过node和npm设置开发环境,创建react应用。接着,引入react-bootstrap库,创建Header和Login组件。在Header组件中,使用导航链接触发登录弹层,通过状态管理控制Modal的显示。在Login组件中,利用props从父组件接收显示状态,并通过回调函数将数据传递回父组件,实现关闭弹层的功能。

通过node搭建开发环境,先下载node并安装,然后在cmd中用npm命令下载react脚手架,

我选择了react-bootstrap作为UI框架,所以也在cmd中下载react-bootstrap资源包。

npm install -g create-react-app

npm install react-bootstrap bootstrap 

然后创建项目,再进入运行项目

create-react-app myreact

cd myreact

npm start 

会自动打开页面,网址:http://localhost:3000/ 这是开发环境网页,项目中有已生成的index页面文件,在index.js里引用bootstrap的css文件

 我将App.js内容改造为三个板块

页面变成了这样 

 Header板块使用了react-bootstrap的导航标签

 我想做个登录弹层出来,弹层想做成组件,就在Header.js里引入登录组件

import Login from './login';

<Login />

 Login文件里的代码

页面样式这样

导航上的登录按钮加上onClick事件, login文件里用bootstrap标签Modal来实现,Modal标签通过show属性来展示或隐藏,值是false或true,导航上的登录按钮的onClick就需要控制show的值,但是登录弹层是另一个组件,所以要用到父组件传值给子组件的功能。

在Header.js里初始化变量,设置show为false,先不显示弹层

constructor(props){//初始化
    super(props);
    this.state={
        show:false,//显示弹层
        type:0//登录或不登录
    }
}

登录事件里加js语句,让show变成true值

<Nav.Link eventKey={2} onClick={()=>this.setState({show:true})}>登录</Nav.Link>

Login标签传递值<Login name={this.state.show}/> 

再在login.js里接收值

<Modal show={this.props.name} onHide={handleClose}>

点击弹层右上角X时想要关闭弹层,需要将show的值改变并传递给父组件。

通过学习,可以在父组件Header里再传递一个属性onRef给Login标签,传递值是个函数,

<Login name={this.state.show} onRef={this.getChildrenData}></Login>

这个函数里进行接收子组件传递过来的数据,并替换state里的值

getChildrenData=(data)=>{
      console.log(data);
      this.setState({show:data.name,type:data.type});
}

等子组件 Login需要调用时把改变的数值通过onRef这个函数传递回父组件,就能关闭弹层。

this.props.onRef(this.state);

我想获取弹层里输入的用户名,密码等 需要用React.createRef()方法,form标签也要加上ref属性。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值