React.js 官网资料摘记:JSX简介
来源:互联网 发布:软件游戏猎手下载 编辑:程序博客网 时间:2024/05/17 04:52
关于这一部分,建议配合慕课网的课程一起看,他讲的蛮好的。
React 官网资料文档摘记
给一个最简单的使用本地开发环境进行尝试的文档:
<!DOCTYPE html><html> <head> <meta charset="UTF-8" /> <title>Hello React!</title> <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script> <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script> <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script> </head> <body> <!--下面容器的内部就是被渲染的结果--> <div id="root"> <!----> </div> <script type="text/babel"> //在这里面进行代码编写就可以了! </script> </body></html>
JSX 简介
基础语法
//直接使用函数进行渲染也是可以的function formateName(user){ return user.firstName+" "+user.lastName;}//或者是常量也可以const user={ firstName:"hello", lastName:"world"};const element=( <h1> {formateName(user)} </h1>);ReactDOM.render( element, document.getElementById("root"));
JSX属性
- 属性名采用驼峰法命名
- 属性值为字符串的话可以直接负值,并使用
""
括起来 - 为
javascript
表达式的话需要使用{}
括起来
const element=( <div> <div className='class_name'>class_name</div> <div style={{color:'red',fontSize:'24px'}}>style<div> </div>);
JSX防注入攻击
所有的输入都会解析成字符串形式,所以即使注入代码也不会被运行,这是官网上说的。
//我也不会JSX攻击,所以这里就演示一下,如何读取用户的输入值,并且进行显示class Game extends React.Component{ constructor(){ //等于先实例化父类 super(); this.state={ inputvalue:'请输入你的名字' }; } render(){ return ( <div> <input type='text' onChange={()=>this.handleChange()} ref='inputvalue' /> <button onClick={()=>this.handleClick()}>点击我查看输入</button> </div> ); } //下面定义输入框改变函数 handleChange(event){ var inputDOM=ReactDOM.findDOMNode(this.refs.inputvalue); this.state.inputvalue=inputDOM.value; } //下面定义按钮处理函数 handleClick(){ let inputvalue=this.state.inputvalue; alert(inputvalue); }}
这里面用到了几个知识点,介绍一下:
- 事件绑定:
onChange
、onClick
直接在Component
内部设定处理函数,函数内部实现等会再说。先来看看这些事件是怎么绑定到onClick
上去的:onChange={()=>this.handleChange()}
这里如果写成这样的形式:onChange={this.handleChange()}
则会直接调用handleChange()
函数,而不是触发。并且在这些函数中默认传入event
,该参数与javascript
的event
操作一样。
- 类似于面向对象编程中的构造函数:constructor
这里的构造函数是constructor
,在该构造函数中可以设置一个在该Component内部有效的全局变量:state。
- DOM查找
首先是使用refs
设置了一个标签,代码中是ref='inputvalue'
,之后在外部调用ReactDOM的findDOMNode
函数,在该函数内部传入下面形式的调用this.refs.inputvalue
,便可以返回该DOM的对象。
注意,这里插两个知识点:
- 命名变量的时候,最好不要使用下划线和大小写区分,直接全部命名成小写,不知道为什么,那样老是报错。
- 不要随便嵌套HTML标签,那样也可能报错,毕竟不是真正的HTML标签。
JSX代表Objects
Babel转换器会把JSX转换成一个名为
React.createElement()
的方法进行调用。
所以下面两段代码的效果是一样的:
const element=( <h1 className='classname'> Hello World ! </h1>);
const element=React.createElement( 'h1', {className:"classname"}, 'Hello World');
这样处理结果会返回一个React元素
,这些React元素
会被React处理成最后显示在页面上的元素。
阅读全文
0 0
- React.js 官网资料摘记:JSX简介
- React.js 官方资料摘记:深入JSX
- React.js 官网资料摘记:元素渲染
- React.js 官网资料摘记:组件&Props
- React.js 官网资料摘记:State & 生命周期
- React.js 官网资料摘记:事件处理
- React.js 官网资料摘记:条件渲染
- React.js 官网资料摘记:列表&keys
- React.js 官网资料摘记:使用Prop-Types检查类型
- React.js 官方资料摘记:状态提升
- React--Introducing JSX(JSX简介)
- React.js 官方资料摘记:组合 VS 继承
- [3]React 深入浅出-----JSX简介
- Laravel 5.4 官网资料摘记:Session
- React JSX
- React JSX
- React.js 官方文档摘记:表单
- React入门笔记(一):简介和JSX
- 【脚本语言系列】关于Python并发技术gevent,你需要知道的事
- lambda表达式
- java笔记(四):泛型
- 茶
- Android studio 使用NDK 实现串口 动态库
- React.js 官网资料摘记:JSX简介
- Nginx安装手册
- Pat甲级10019
- Java基础教程29-Abstract类和方法
- hadoop的Namenode HA原理详解
- postgresql中ST_Intersects用法
- 蛇形填数二
- PAT (Advanced Level) Practise 1027
- itextsharp 利用模板批量打印PDF