ReactJs基础_html/css_WEB-ITnose
-
因项目某些页面需要重构, 使用了ReactJs, 所以做了一些小demo
-
源码地址,含有wiki
1.JSX使得在模板插入js变量
<!DOCTYPE html><html> <head> <script src="../build/react.js"></script> <script src="../build/react-dom.js"></script> <script src="../build/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> //JSX 允许直接在模板插入 JavaScript 变量。如果这个变量是一个数组,则会展开这个数组的所有成员 var arr = [ <h1 id="Hellow-Pan"> Hellow, Pan </h1>, <h2 id="I-like-React-very-much"> I like React very much! </h2>, ]; ReactDOM.render( <div>{arr}</div>, document.getElementById('example') ); </script> </body></html>
2.ReactDomTest
<!DOCTYPE html><html> <head> <script src="../build/react.js"></script> <script src="../build/react-dom.js"></script> <script src="../build/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> ReactDOM.render( <h1 id="Hello-world">Hello, world!</h1>, document.getElementById('example') ); </script> </body></html>
3.使用JSX支持JS与HTML混用
<!DOCTYPE html><html> <head> <script src="../build/react.js"></script> <script src="../build/react-dom.js"></script> <script src="../build/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> var names = ['Shine', 'Pans', 'Panshang']; //jsx可以让html和js混用, <>是html, {}是js ReactDOM.render( <div> { names.map(function (name){ return <div> Hello, {name}!</div> }) } </div>, document.getElementById('example') ); </script> </body></html>
4.创建组件
<!DOCTYPE html><html> <head> <script src="../build/react.js"></script> <script src="../build/react-dom.js"></script> <script src="../build/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> //HelloMessage 是一个组件类。模板插入 <HelloMessage /> 时,会自动生成 HelloMessage 的一个实例 var HelloMessage = React.createClass({ render: function(){ return <h1 id="Hello-this-props-name">Hello, {this.props.name}</h1>; } }); ReactDOM.render( <HelloMessage name = "Pan" />, document.getElementById('example') ); </script> </body></html>
5.使用属性 props
<!DOCTYPE html><html> <head> <script src="../build/react.js"></script> <script src="../build/react-dom.js"></script> <script src="../build/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> //NoteList 组件有两个 span 子节点,它们都可以通过 this.props.children 读取 var NotesList = React.createClass({ render: function() { return ( <ol> { React.Children.map(this.props.children, function (child) { return <li>{child}</li>; }) } </ol> ); } }); ReactDOM.render( <NotesList> <span>hello</span> <span>Pan! </span> </NotesList>, document.body ); </script> </body></html>
6.PropsType
<!DOCTYPE html><html> <head> <script src="../build/react.js"></script> <script src="../build/react-dom.js"></script> <script src="../build/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> var MyTitle = React.createClass({ //要求title的属性的data类型是string,只能是string propTypes: { title: React.PropTypes.string.isRequired, }, render: function() { return <h1 id="this-props-title"> {this.props.title} </h1>; } }); //测试部分, 将title属性设置成 int类型, 然后会报错 //将123用引号包起来标示为字符串类型将不在报错 var data = 123; ReactDOM.render( <MyTitle title = {data} />, document.body ); </script> </body></html>
7.使用默认属性 GetDefaultProps
<!DOCTYPE html><html> <head> <script src="../build/react.js"></script> <script src="../build/react-dom.js"></script> <script src="../build/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> //获取默认的属性 //获取的是title的值 var MyTitle = React.createClass({ getDefaultProps : function () { return { title : 'shinepans' }; }, render: function() { return <h1 id="this-props-title"> {this.props.title} </h1>; } }); ReactDOM.render( <MyTitle />, document.body ); </script> </body></html>
8.获取真实dom
<!DOCTYPE html><html> <head> <script src="../build/react.js"></script> <script src="../build/react-dom.js"></script> <script src="../build/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> var MyComponent = React.createClass({ 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( <MyComponent />, document.getElementById('example') ); </script> </body></html>
9.通过State改变状态
<!DOCTYPE html><html> <head> <meta charset="utf-8")> </meta> <script src="../build/react.js"></script> <script src="../build/react-dom.js"></script> <script src="../build/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> var LikeButton = React.createClass({ getInitialState: function() { return {liked: false}; }, handleClick: function(event) { this.setState({liked: !this.state.liked}); }, //转换状态, 喜欢或不喜欢 render: function() { var text = this.state.liked ? '喜欢了' : '还没喜欢'; return ( <p onClick={this.handleClick}> 你{text}这个.点击文本改变你的状态. </p> ); } }); ReactDOM.render( <LikeButton />, document.getElementById('example') ); </script> </body></html>
10.使用表单监听,更好的用户交互
<!DOCTYPE html><html> <head> <meta charset="utf-8")> </meta> <script src="../build/react.js"></script> <script src="../build/react-dom.js"></script> <script src="../build/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> //监听textarea的变化, 变化了就更新p标签里的内容 //下面初始化了 输入框和p的初始值 var Input = React.createClass({ getInitialState: function() { return {value: '请在文本框输入文本'}; }, handleChange: function(event) { this.setState({value: event.target.value}); }, render: function () { var value = this.state.value; return ( <div> <textarea rows="10" cols="30" value={value} onChange={this.handleChange} /> <p>{value}</p> </div> ); } }); ReactDOM.render(<Input/>, document.body); </script> </body></html>
11.使用JSBIn 直接在浏览器运行,调试JSX 很方便
- JSBib网址
令文字渐变效果, 使用了props, 计时器等, 源码参考开始时给出的源代码地址
by: 潘尚
time: 2016.1.30

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

HTML适合初学者学习,因为它简单易学且能快速看到成果。1)HTML的学习曲线平缓,易于上手。2)只需掌握基本标签即可开始创建网页。3)灵活性高,可与CSS和JavaScript结合使用。4)丰富的学习资源和现代工具支持学习过程。

HTML定义网页结构,CSS负责样式和布局,JavaScript赋予动态交互。三者在网页开发中各司其职,共同构建丰富多彩的网站。

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

网页批注功能的Y轴位置自适应算法本文将探讨如何实现类似Word文档的批注功能,特别是如何处理批注之间的间�...

GiteePages静态网站部署失败:404错误排查与解决在使用Gitee...

实现图片点击后周围图片散开并放大效果许多网页设计中,需要实现一种交互效果:点击某张图片,使其周围的...

HTML、CSS和JavaScript是Web开发的三大支柱。1.HTML定义网页结构,使用标签如、等。2.CSS控制网页样式,使用选择器和属性如color、font-size等。3.JavaScript实现动态效果和交互,通过事件监听和DOM操作。
