对react的研究
1.class HelloMessage extends React.Component {
render() {
return (
<div>
Hello {this.props.name}
</div>
);
}
} ReactDOM.render(
<HelloMessage name="Taylor" />,
mountNode
);
2.class Timer extends React.Component {
constructor(props) {
super(props);
this.state = { seconds: 0 };
} tick() {
this.setState(state => ({
seconds: state.seconds + 1
}));
} componentDidMount() {
this.interval = setInterval(() => this.tick(), 1000);
} componentWillUnmount() {
clearInterval(this.interval);
} render() {
return (
<div>
Seconds: {this.state.seconds}
</div>
);
}
} ReactDOM.render(<Timer />, mountNode);

3.

class TodoApp extends React.Component {
constructor(props) {
super(props);
this.state = { items: [], text: '' };
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
render() {
return (
<div>
<h3>TODO</h3>
<TodoList items={this.state.items} />
<form onSubmit={this.handleSubmit}>
<label htmlFor="new-todo">
What needs to be done?
</label>
<input
id="new-todo"
onChange={this.handleChange}
value={this.state.text}
/>
<button>
Add #{this.state.items.length + 1}
</button>
</form>
</div>
);
} handleChange(e) {
this.setState({ text: e.target.value });
} handleSubmit(e) {
e.preventDefault();
if (!this.state.text.length) {
return;
}
const newItem = {
text: this.state.text,
id: Date.now()
};
this.setState(state => ({
items: state.items.concat(newItem),
text: ''
}));
}
} class TodoList extends React.Component {
render() {
return (
<ul>
{this.props.items.map(item => (
<li key={item.id}>{item.text}</li>
))}
</ul>
);
}
} ReactDOM.render(<TodoApp />, mountNode);
class MarkdownEditor extends React.Component {
constructor(props) {
super(props);
this.handleChange = this.handleChange.bind(this);
this.state = { value: 'Hello, **world**!' };
} handleChange(e) {
this.setState({ value: e.target.value });
} getRawMarkup() {
const md = new Remarkable();
return { __html: md.render(this.state.value) };
} render() {
return (
<div className="MarkdownEditor">
<h3>Input</h3>
<label htmlFor="markdown-content">
Enter some markdown
</label>
<textarea
id="markdown-content"
onChange={this.handleChange}
defaultValue={this.state.value}
/>
<h3>Output</h3>
<div
className="content"
dangerouslySetInnerHTML={this.getRawMarkup()}
/>
</div>
);
}
} ReactDOM.render(<MarkdownEditor />, mountNode);

最新文章

  1. express 快速教程
  2. hibernate(九)多对多关联
  3. Lua程序设计入门
  4. java中的三种取整函数
  5. HTML&amp;CSS学习笔记(一)
  6. 供应商 银行 SQL (转自ITPUB)
  7. Machine Learning 学习笔记 (2) —— 使用牛顿法寻找极值
  8. IOS UI 第十篇: UITABLEVIEW
  9. laravel学习笔记二
  10. 实训任务01:安装Hadoop
  11. AndroidS软件代码提示
  12. 按位与(&amp;)和按位或(|)
  13. IOS 圆形进度条
  14. EPEL 源
  15. 传输层中的协议 TCP &amp; UDP
  16. Python处理数据
  17. abap异常处理 , update module
  18. 前端常用长度单位(px,em,rem,pt)介绍
  19. C#继承基本控件实现自定义控件 (转帖)
  20. Windows7 jmeter3.1安装(咋个安装?)

热门文章

  1. leetcode-mid-array-49 Group Anagrams
  2. Linux驱动开发2——字符设备驱动
  3. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_09 序列化流_3_对象的反序列化流_ObjectInputStream
  4. js 创建对象的方法
  5. oracle alter index rebuild offline与online
  6. 20191105 《Spring5高级编程》笔记-第9章
  7. Web高级 JavaScript中的算法
  8. Tensorflow之CNN卷积层池化层padding规则
  9. C语言1-2019级秋季作业第一周作业
  10. [Web 前端] 008 css 颜色表示方法