广州建设外贸网站,首码网站免费推广,网站设计 做鼠标效果,建设银行不会自动弹出网站React父子组件传值
react中的组件#xff1a;解决HTML标签构建应用的不足。使用组件开发的好处#xff1a;把公共的功能单独抽离成一个文件作为一个组件#xff0c;哪里使用哪里引入。父子组件#xff1a;组件的相互调用中#xff0c;我们把调用者称为父组件#xff0c;…React父子组件传值
react中的组件解决HTML标签构建应用的不足。使用组件开发的好处把公共的功能单独抽离成一个文件作为一个组件哪里使用哪里引入。父子组件组件的相互调用中我们把调用者称为父组件被调用者称为子组件父子组件传值react父子组件通信 父组件给子组件传值 在调用子组件的时候定义一个属性 子组件里面 this.props.msg 说明父组件可以给子组件传值还可以给子组件传方法以及把整个父组件传给子组件。还可以子组件给父组件传值 父组件主动获取子组件的数据 调用子组件的时候指定ref的值 通过this.refs.header 获取整个子组件实例 DOM组件加载完成以后获取 父组件给子组件传值 defaultProps父组件传值中如果父组件调用子组件的时候不给子组件传值则可以在子组件中使用defaultProps定义的默认值propType验证父组件传值的类型合法性 引入import PropTypes from ‘prop-type’;类.PropTypes{name:PropTypes.string} 通过propTypes定义父组件传给子组件的类型 都是定义在子组件里边的
react中没有提供专门请求数据的模块。但是我们可以使用任何第三方请求数据模块实现请求数据
axios https://github.com/axios/axios axios作者觉得jsonp不太友好推荐使用CORS方式更为干净后端运行跨域 安装axios模块 npm insttall axios --save在哪里使用就在那里引用 import axios from ‘axios’看文档使用 //接口后台允许了跨域否则获取不到数据let api http://xxx?agetListid20axios.get(api).then(function(response){console.log(response)}).catch((error){console.log(error)})fetch-jsonp https://github.com/camsong/fetch-jsonp 安装 npm install fet-jsonp --saveimport FetchJsonp from ‘fetch-jsonp’看文档使用let api http://xxx?agetListid20callback?FetchJsonp(api).then(function(response) {return response.json() }).then(function(json) {console.log(parsed json, json) }).catch(function(ex) {console.log(parsing failed, ex)})其他请求数据的方法也可以 自己封装模块用原生js实现数据请求也可以
远程测试APP接口
get请求 http://xxx?agetListid20 jsonp请求地址的时候 http://xxx?agetListid20callback?
React生命周期函数 组件加载之前组件加载完成以及组件更新数据组件销毁。触发一系列的方法这就是组件的生命周期函数 组件加载的时候触发的函数 constructor componentWillMount render componentDidMount加载完成 组件更新时触发的函数 shouldComponentUpdate是否要更新数据如果返回false则不执行更新 componentWillUpdate(组件将要更新时触发) render componentDidUpdate(组件数据更新完成) 你在父组件里面改变props传值的时候触发的 componentWillReceiveProps 组件销毁的时候触发的函数 componentWillUnmount 组件销毁的时候触发的生命周期函数
react-Router
react-Router 可以让根组件动态的去挂载不用的其他组件。根据用户访问的地址动态的加载不同的组件react路由的配置 找到官方文档 https://reacttraining.com/react-router/web/example/basic安装 cnpm install react-router-dom --save找到项目的根组件引入 react-router-dom import {BrowserRouter as Router,Switch,Route,Link} from “react-router-dom”; 复制官网文档根组件里面的内容进行修改 exact表示严格匹配 RouterdivulliLink to/Home/Link/liliLink to/aboutAbout/Link/liliLink to/dashboardDashboard/Link/li/ulhr /SwitchRoute exact path/Home //RouteRoute path/aboutAbout //RouteRoute path/dashboardDashboard //Route/Switch/div/Router动态路由及get传值
一个页面切换到另外一个页面进行传值 get传值 获取get传值 this.props.location.search // 得到?aid4 解析?aid4 使用url模块解析url地址 在react里面使用URL模块需要安装url模块 cnpm install url --save 使用url.parse(this.props.location.search,true)aidurl.parse(this.props.location.search,true).query.aid 动态路由 获取动态路由的传值 this.props.match.params.aid localStorage 总结动态路由及get传值 动态路由传值 动态路由配置 (1) 对应的动态路由加载的组件里面获取传值 (1) this.props.match.params react get传值 this.props.location.search
react 解析html react通过js实现路由跳转
要引入Redirect定义一个flagrender里边判断flag来决定是否跳转执行js跳转 通过js改变flag状态之后就可以通过Redirect进行跳转 Redirect to{{pathname:“/”}} /