发表日期: 2021-06-03 15:31:30 浏览次数:121
泸州400电话办理【泸州网站公司】泸州百度优化、泸州域名注册、泸州网店美工、泸州微信公众号托管

泸州,古称“江阳”,别称酒城、江城 [75] ,是四川省地级市,全国区域中心城市 [75] ,川渝滇黔结合部区域中心城市和成渝地区双城经济圈南翼中心城市 [1] 、重要的商贸物流中心,长江上游重要的港口城市。截止2020年12月底,全市乡镇政区126个,面积12232.34平方公里。2020年末全市公安户籍登记户数158.09万户,户籍总人口507.95万人,其中乡村人口305.71万人,城镇人口202.24万人,户籍人口城镇化率39.8% [12] ;2020年泸州市常住人口4254149人 [86] 。
泸州是国家历史文化名城,具有两千多年历史文化;西汉设江阳侯国;梁武帝大同年间建置泸州;泸州在宋代即为西南要会,明代即与成都、重庆三足鼎立,成为当时全国33个商业大都会之一。 [76] 形成了以名酒文化、生态文化、红色文化、历史文化、长江文化为代表的五大特色旅游资源;拥有国家4A级旅游景区7个,国家3A级旅游景区6个,国家2A级旅游景区9个。 [3-4] [75]
泸州是长江中上游地区第二大集装箱码头,四川第三大航空港 [77] ;也是第三批国家新型城镇化综合试点地区、跨境电子商务综合试验区;世界级白酒产业基地,国家重要的以名优酒为主体的食品工业基地、循环型化工基地、清洁能源生产基地、国家高性能液压件高新技术产业化基地、国家9大工程机械生产基地之一。 [2]
先后获得过联合国改善人居环境最佳范例奖(迪拜奖)、中国地级市民生发展100强、国家卫生城市、中国优秀旅游城市、国家森林城市、国家园林城市、全国文明城市、国家水生态文明城市等荣誉。 [5-6]
web端三大框架react、vue和angular,本篇教程介绍react的从入门到精通。
从上面的代码我们可以看出,两个组件之间的数据是分离,但如果我们有某种需求,将数据从一个组件传到另一个组件中,该如何实现?
场景设计:
将demo4.js中的demo4Data传递到demo2.js中
import React,{ Component } from 'react'import Demo2 from './demo2.js'class Demo4 extends Component { constructor(props) { super(props); this.state = { demo4Data:"主组件的数据" }; } render() { return ( <div style={{width:"100%", height:"300px", fontSize:"20px", textAlign:"center", backgroundColor:"#ccc"}}> Demo4 <Demo2></Demo2> </div> ) }}export default Demo4(1)方法一:使用临时存储、永久存储或cookie的方式
代码如下:
demo4代码如下:
import React,{ Component } from 'react'import Demo2 from './demo2.js'class Demo4 extends Component { constructor(props) { super(props); this.state = { demo4Data:"主组件的数据" }; } render() { return ( <div style={{width:"100%", height:"300px", fontSize:"20px", textAlign:"center", backgroundColor:"#ccc"}}> Demo4 <Demo2/> </div> ) } componentDidMount=()=>{ console.log(2); sessionStorage.setItem("demo4Data",this.state.demo4Data); };}export default Demo4demo2代码如下:
import React,{ Component } from 'react'import Demo3 from './demo3.js'class Demo2 extends Component { constructor(props) { super(props); this.state = { demo4Data:'' }; } render() { return ( <div style={{width:"100%", height:"300px", fontSize:"20px", textAlign:"center", backgroundColor:"#ccc"}}> Demo2[接受来自demo4的数据({this.state.demo4Data})] <Demo3/> </div> ) } componentDidMount=()=>{ let demo4Data=sessionStorage.getItem("demo4Data"); console.log(demo4Data); this.setState({ demo4Data:demo4Data }); };}export default Demo2效果如下:

以上使用临时存储的方式,永久存储和cookie的方法类似。
(2)方法二:使用props来实现父子组件之间的数据传递
上面临时存储的方式用到的是js原生的一些知识,但因为现在是依据react.js框架进行开发,所以提倡使用react.js的知识来实现功能。
demo4代码如下:
import React,{ Component } from 'react'import Demo2 from './demo2.js'class Demo4 extends Component { constructor(props) { super(props); this.state = { demo4Data:"主组件的数据", demo4Data2:"父子传值" }; } render() { return ( <div style={{width:"100%", height:"300px", fontSize:"20px", textAlign:"center", backgroundColor:"#ccc"}}> Demo4 <Demo2 data={this.state.demo4Data2}/> </div> ) } componentDidMount=()=>{ console.log(2); sessionStorage.setItem("demo4Data",this.state.demo4Data); };}export default Demo4demo2代码如下:
import React,{ Component } from 'react'import Demo3 from './demo3.js'class Demo2 extends Component { constructor(props) { super(props); this.state = { demo4Data:'' }; } render() { return ( <div style={{width:"100%", height:"300px", fontSize:"20px", textAlign:"center", backgroundColor:"#ccc"}}> Demo2[接受来自demo4的数据({this.state.demo4Data})] <Demo3/> Demo2[接受来自demo4的父子传值数据({this.props.data})] </div> ) } componentDidMount=()=>{ let demo4Data=sessionStorage.getItem("demo4Data"); console.log(demo4Data); this.setState({ demo4Data:demo4Data }); };}export default Demo2效果如下:

props就相当于一个媒介,链接这两个组件之间的通道。
(3)、组件之间在动态中的数据传递
从上面我们可以看出,当页面加载时,组件之间的数据传递自动执行。现在我们设计另一个场景。
场景:当点击下列id为demo4后,demo2上的数据发生变化。
demo4代码如下:
import React,{ Component } from 'react'import Demo2 from './demo2.js'class Demo4 extends Component { constructor(props) { super(props); this.state = { demo4Data:"主组件的数据", demo4Data2:"父子传值", demo4Data3:"我是动态传值" }; } render() { return ( <div style={{width:"100%", height:"300px", fontSize:"20px", textAlign:"center", backgroundColor:"#ccc"}}> Demo4 <Demo2 data={this.state.demo4Data2} id="demo2" ref={ref => this.datademo4 = ref} dataMyScreen={this.state.datademo4}/> <span id="demo4" onClick={()=>this.demo4Click()}>动态传值点击</span> </div> ) } demo4Click=()=>{ this.datademo4.setdatademo4(this.state.demo4Data3); }; componentDidMount=()=>{ console.log(2); sessionStorage.setItem("demo4Data",this.state.demo4Data); };}export default Demo4demo2代码如下:
import React,{ Component } from 'react'import Demo3 from './demo3.js'class Demo2 extends Component { constructor(props) { super(props); this.state = { demo4Data:'' }; } render() { return ( <div style={{width:"100%",height:"300px",fontSize:"20px",textAlign:"center",backgroundColor:"#ccc"}}> Demo2[接受来自demo4的数据({this.state.demo4Data})] <Demo3/> Demo2[接受来自demo4的父子传值数据({this.props.data})] </div> ) } //方法名应该与主组件上的一致 setdatademo4=(data)=>{ this.setState({ demo4Data:data }); }; componentDidMount=()=>{ let demo4Data=sessionStorage.getItem("demo4Data"); console.log(demo4Data); this.setState({ demo4Data:demo4Data }); };}export default Demo2

通过事件触发,将数据传到子组件中,然后使用this.setState()进行刷新页面,将得到的数据渲染上去。
如果你对上面的一无所知的话可以访问追梦猪git下载demo实现快捷开发,省掉安装的步骤
追梦猪react项目demo实例(https://github.com/jiawenguang/React-demo.git)
可以通过git clone方式下载项目结构。