react基础学习一 react的使用及创建虚拟DOM的方式
2019-03-14 21:15
489 查看
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>react</title> </head> <body> <!-- 1、定义一个容器存放虚拟DOM --> <div id="my"></div> <!-- react 核心库 --> <script src="./node_modules/react/umd/react.development.js"></script> <!-- react-dom 提供DOM相关的功能 --> <script src="./node_modules/react-dom/umd/react-dom.development.js"></script> <!-- babel 转码器 es6--es5 --> <script src="./node_modules/babel-standalone/babel.min.js"></script> <!-- 注意!type一定要写,值为text/babel --> <script type="text/babel"> // 2、创建虚拟DOM // 方式1 var str = React.createElement('div',{id:"ddd",className:'div-a'},'我是标签的内容'); //参数1 必选 标签名 // 参数2 可选 属性 // 参数三 内容 // 3、虚拟DOM渲染 ReactDOM.render(str,document.getElementById('my')); //这种方式 太不方便了 </script> </body> </html>
上面展示了,使用react时需要引用的文件及创建虚拟DOM的第一种方式。
JSX的方式
ReactDOM.render( // 注意:这里有且只能有一个最外层元素 //{} 模板渲染 <ul> <li>1</li> <li>2{1}</li> </ul> ,document.getElementById('my'));
或者
var v = "这是一个变量"; var div = <div className="aa">窗前明月光{v}</div>; ReactDOM.render( div ,document.getElementById('my'));
组件的方式
使用es6的class来定义一个组件
class Hello extends React.Component{ render(){ return <h1>hello组件</h1> } } ReactDOM.render( //这里不可以直接写<Hello> ,原因是Hello组件可能没有公共的根元素 <div> <Hello></Hello> </div> ,document.getElementById('my'));
一个demo:
class Tablist extends React.Component{ constructor(){//构造器 super();//继承父类 this.state = {//状态 flag:true } }; btnOne(){ this.setState({ flag:true }) }; btnTwo(){ this.setState({ flag:false }) }; render(){ var flag = this.state.flag; return ( <div> <ul> <li className={flag?'active':''} onClick={()=>this.btnOne()}>AAA</li> <li className={!flag?'active':''} onClick={()=>this.btnTwo()}>BBB</li> </ul> {flag?<p>这是A的内容</p>:<p>这是B的内容</p>} </div> ) } } ReactDOM.render( <Tablist/>, document.getElementById('my') )
//css .active{ color: #f60 }
注意:1、上面样式用className而不是class。
2、改变state中的值要用setState。
3、事件的绑定 onClick = {}
相关文章推荐
- IOS学习(九)UITabView使用及几种常见的创建方式
- salesforce 零基础学习(二十八)使用ajax方式实现联动
- Java多线程基础学习之线程的创建方式总结
- SQL学习之使用命令方式创建、删除与修改关系表
- react-native-pg-style使用方法(以最简单的方式编写样式代码,抛弃react-native标准的样式创建方式.)
- java基础学习总结——线程之使用Runnable接口创建线程的方法
- iOS开发学习专题-基础知识(四) NSNumber容器 NSData数据 NSData转换的详细使用方式
- 一步步学习微软InfoPath2010和SP2010--第九章节--使用SharePoint用户配置文件Web service(1)--创建事件注册表单基础
- 学习 Eclipse基础--使用links方式安装Eclipse插件
- react学习笔记 item3 --- 组件的创建方式
- iOS开发学习专题-基础知识(五) NSDate时间 NSUserDefaults本地存储 NSNotification系统通知的详细使用方式
- iOS开发学习专题-基础知识(三)NSDictionary字典NSMutableDictionary可变字典NSDictionary字典和json转换详细使用方式
- [cocos2d-x学习笔记][入门基础]使用loardingbar创建怪物hp条
- 【Java EE 学习 52】【Spring学习第四天】【Spring与JDBC】【JdbcTemplate创建的三种方式】【Spring事务管理】【事务中使用dbutils则回滚失败!!!??】
- android 使用代码方式创建自定义progressBar——自定义控件学习(六)
- Objective-C基础学习笔记(八)-内存管理-autorelease使用-property创建对象的内存管理-循环引用的内管管理
- 动态链接库的创建和使用(基础版)——学习记录
- react---学习笔记:使用create-react-app快速构建开发环境并创建项目
- iOS开发学习专题-基础知识(一)NSString NSMutableString NSRange NSNotFound详细使用方式
- 使用JavaConfig方式-Spring 基础学习