react实现简单的表单
发布时间:2020-12-15 06:58:36 所属栏目:百科 来源:网络整理
导读:安装 jspmbablegulpgithubjspm install react@0.14.0-rcljspm install react-dom@0.14.0-rcljspm install semantic-ui引用插件 jspm install css html文件 !DOCTYPE html html head meta charset="UTF-8" / titlereact/title /head body div class="ui conta
|
安装 jspm bable gulp github jspm install react@0.14.0-rcl jspm install react-dom@0.14.0-rcl jspm install semantic-ui 引用插件 jspm install css html文件<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>react</title>
</head>
<body>
<div class="ui containe" style="padding:30px">
<div id="app">
</div>
</div>
<script type="text/bable" src="js/main.js"></script>
<script src="config.js">
</script>
<script>
System.improt('app/main');
</script>
</body>
</html>
comments.json写数据
[
{"author":"师师","data":"5分钟前","text":"是啊是撒"},{"author":"44","data":"3分钟前","text":"是啊是撒"}
]
comment.js'uae strict'
import React from 'react';
class Comment extends React.Component{
render(){
return(
<div className="comment">
<div className="content">
<span className="author">{this.props.author}</span>
<div className="metadata">
<span className="data">{this.props.data}</span>
</div>
<div className="text">{this.props.children}</div>
</div>
</div>
);
}
}
export { comment as default};
commentBox.js'use strict'
import Resct from 'react'
import commentlist from './commentlist';
import commentfrom from './commentfrom';
import $ from 'jquery';
class CommentBox extends React.Component{
constructor(props){
super(props);
this.state={data:[]};
this.getComments();
//setInterval(()=>this.getComments(),5000);
}
handleCommentSubmit(comment){
let comments = this.state.data,newComments = comments.concat(comment);
this.setState({data:newComments});
}
getComments(){
$.ajax({
url:this.props.url,dataType:'json',cache:false,success:comment=>{
this.setState({data: comments});
},error:(xhr,status,error)=>{
console.log(error);
}
});
}
render(){
return(
<div className="ui comments">
<h1>
评论
</h1>
<div className="ui divider">
<commentlist data={this.state.data}/>
<commentfrom onCommentSubmit={this.handleCommentSubmit.bind(this)}/>
</div>
</div>
);
}
}
export {CommentBox as default}
commentform.js'use strict';
import React from 'react';
class commentfrom extends React.Component{
handlesubmit(event){
event.preventDefault();
console.log('提交表单');
let author=this.refs.text.value;
text=this.refs.text.value;
console.log(anthor,text);
this.props.onCommentSubmit({author,text,data:'刚刚'});
}
render(){
return(
<from className="ui reply from" onSubmit={this.handlesubmit.bind(this)}>
<div className="field">
<input type="text" placeholder="姓名" ref="author">
</div>
<div class="field">
<textarea placeholder="评论" ref="text"></textarea>
</div>
<button type="submit" class="ui blue button">
添加评论
</button>
</from>
)
}
}
export { Commentfrom as default};
commentlist.js'use strict';
import React from 'react';
import comment from './comment'
class commentlist extends React.Component{
render(){
let commentsNode=this.props.data.map(comment=>{
return(
<Comment author={comment.author} data={comment.data}>
{comment.text}
</Comment>
);
})
return(
<div>
{commentNodes}
</div>
)
}
}
export { Commentfrom as default};
main.js'uae strict'
improt 'semantic-ui/semantic.min.css!';
improt React from 'react';
improt React from 'react-dom';
improt CommentBox from './comment/commentBox.js';
ReactDom.render(
<CommentBox url="app/comments.json"/>,document.getElementById('app')
) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
