经管之家App
让优质教育人人可得
立即打开
全部版块
我的主页
›
论坛
›
数据科学与人工智能
›
人工智能
›
自然语言处理
Java架构师成长直通车(40周完结无密)
楼主
WM2WGk8oSmKmG
1342
1
收藏
2021-09-11
###
Java架构师成长直通车(40周完结无密)
链接:
https://pan.baidu.com/s/19Se0O0QtR7o1T_ASlOVfug
提取码:9u01
--来自百度网盘超级会员V4的分享
引入准绳:
<head> </script> </script> </script></head>
body区域
<div id='example'></div><script type='text/bable'> //**our codes goes here!</script>
实践上线用babel停止转换
bable src --out-dir build
ReactDOM.render()
示例:
ReactDOM.render( <h1>hello world!</h1>, document.getElementById('example');)
JSX语法
var names =['Alice','Emily','Kate'];ReactDOM.render( <div> { names.map(function(name){ return <div>Hello,{name}!</div> }) } </div>, document.getElementById('example'));
JSX允许在模板中直接插入JavaScript变量
var arr = [ <h1>Hello world!</h1>, <h2>React is awesome</h2> ];ReactDOM.render( <div>{arr}</div>, document.getElementById('example'));
组件
React.createClass用于生成一个组件类
var HelloMessage = React.creatClass({ render:function(){ return <h1>Hello {this.props.name}</h1>; }});ReactDOM.render( <HelloMessage name='john' />, document.getElementById('example'));
组件的第一个字母必需大写
组件只能包含一个顶层标签
class属性需求写成className
this.props.children
this.props.children 表示组件一切的子节点
var NoteList = React.createClass({ render:function(){ return( <ol> { React.Children.map(this.props.children,function(child){ return <li>{child}</li> }) } </ol> ); }});ReactDOM.render( <NoteList> <span>hello</span> <span>World</span> </NoteList>, document.body);
运用React.Children.map来遍历子节点,不用担忧this.props.children的数据类型
PropTypes
考证实例的属性能否契合请求
var MyTitle = react.createClass({ propTypes:{ title:React.PropTypes.string.isRequired, }, render:function(){ return <h1>{this.props.title}</h1> }});var data = 123;ReactDOM.render( <MyTitle title={data} />, document.body );
getDefaultProps能够用来设置组件属性的默许值
getDefaultProps:function(){ return { title: 'Hello World' }; }
获取真实的DOM节点
有时需求从组件中获取真实的DOM节点,需求用到ref属性。
var MyComponet = React.CreatClass({ handleClick:function(){ this.refs.myTextInput.focus(); }, render:function(){ return ( <div> <input type='text' ref='myTextInput' /> <input type='button' value ='Focus the text input' onClick={this.handleClick} /> </div> ); }});ReactDOM.render( <MyComponet />, document.getElementById('example'));
指定click事情回调函数,确保DOM真实渲染后触发,除此还支持KeyDown等事情
this.state
组件视为状态机,用户互动,状态变化,重新渲染UI。
var LikeButton = React.CreatClass({ getInitialState:function(){ return {liked:false}; }, handleClick:function(event){ this.setState({liked: !this.state.liked}); }, render:function(){ var text = this.state.liked? 'like':'haven\'t liked'; return( <p onClicked={this.handleClick}> You {text} this. Click to toggle. </p> ); }});ReactDom.render( <LikeButton />, document.body);
this.props表示一旦定义不再更改的属性,this.state表示随用户互动产生变化的特性。
表单
var Input = React.createClass({ getInitialState:function(){ return {value:'Hello!'}; }, handleChange:function(event){ this.setState({value:event.target.value}); }, render:function(){ var value = this.state.value; return ( <div> <input type='text' value = {value} onChange = {this.handleChange} /> <p>{value}</p> </div> ); }});ReactDOM.render(<Input />,document.body);
这里获得输入框的值没有运用this.props.value,选用了event.target.value。
组件的生命周期
Mounting: 已插入真实DOM
Updating: 正在被重新渲染
Unmounting:已移除真实DOM
var Hello = React.createClass({ getInitialState:function() return { opacity:1.0 } }, compontentDidMount:function(){ this.timer = setInterval (function() { var opacity = this.state.opacity; opacity -= .05; if(opacity < 0.1){ opacity = 1.0; } this.setState({ opacity:opacity }); }.bind(this),100); }, render: function(){ return ( <div style = {{opacity:this.state.opacity}}> Hello {{this.props.name} </div> ); }});ReactDOM.render( <Hello name='world' />, document.body);
bind(this)——原生JS写法。
Ajax
运用compontentDidMount办法设置Ajax恳求
var UserGist = React.createClass({ getInitialState:function(){ return { username:'', lastGistUrl:'' } }, componentDidMount: function(){ $.get(this.props.source,function(result){ var lastGist = result[0]; if(this.isMounted()){ this.setState({ username:lastGist.owner.login, lastGistUrl:lastGist.html_url }); } }.bind(this)); }, render:function(){ return ( <div> {this.state.username}'s last gist is <a href={this.state.lastGistUrl}>here</a>. </div> ); }});ReactDOM.render( <UserGist source = 'http:xx.xxx.com' />, document.body);
把其他途径获取的对象传入组件
ReactDOM.render( <RepoList promise = {$.getJSON('http://xx.xxx.com)} />, document.body);var RepoList = React.createClass({ getInitialState: function(){ return { loading:true, error : null , data : null} }, componentDidMount(){ this.props.promise.then( value => this.setState({loading:false,data:value}), error => this.setState({loading:false,error:error})); }, render:function(){ if(this.state.loading){ return <span>Loading…</span> } else if(this.state.error !== null){ return <span>Error: {this.state.error.message}</span>; } else{ var repos = this.state.data.items; var reposList = repos.map(function(repo){ return ( <li> <a href={repo.html}>{repo.name}</a> </li> ); }); return ( <main> <h1>Most Popular JavaScript Projects in Github</h1> <ol> {repoList} </ol> </main> ); } }});
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
全部回复
沙发
576414590
2022-1-13 17:57:48
链接失效了 能发个邮箱吗 576414590@qq.com
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
相关推荐
软件Java
Java参考书推荐
T4沙龙—回到未来:云未来,Java这20年[北京]
Pro JavaFX 2
big Java
Java单例设计模式
Java架构师成长直通车(40周完结无密)
图灵学院JAVA高级架构师【第四期】最新完结无密
【黑马架构师】Java架构师实战训练营
图灵学院JAVA高级架构师第三期
栏目导航
自然语言处理
会计与财务管理
经管高考
人工智能论文版
计量经济学与统计软件
宏观经济学
热门文章
CDA考试模拟题库:新增章节练习题(更新于1 ...
【AI Agent可靠性】 智能体Agent记忆系统: ...
全球数字经贸规则年度观察报告(2025年)
2025骑行配件出海研究报告
Modern Computer Algebra
Matrix Algebra-James E·Gentle
股市操练大全PDF版
25秋投资学回忆
2025重塑人工智能时代的绩效管理报告-美世
2025年中国商业地产行业市场洞察报告
推荐文章
AI狂潮席卷学术圈,不会编程也能打造专属智 ...
10月重磅来袭|《打造Coze/Dify专属学术智能 ...
最快1年拿证,学费不足5W!热门美国人工智能 ...
关于如何利用文献的若干建议
关于学术研究和论文发表的一些建议
关于科研中如何学习基础知识的一些建议 (一 ...
一个自编的经济学建模小案例 --写给授课本科 ...
AI智能体赋能教学改革: 全国AI教育教学应用 ...
2025中国AIoT产业全景图谱报告-406页
关于文献求助的一些建议
说点什么
分享
微信
QQ空间
QQ
微博
扫码加好友,拉您进群
各岗位、行业、专业交流群