组件嵌套+Mixin函数demo

非DOM属性:1.dangerouslysetInnerHTML(xxs跨站攻击)

2.key

3.ref
编写组件嵌套
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<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 GenderSelect= React.createClass({
render:function(){
return (
<!-- 父组件通过属性与子组件通信 -->
<select onChange={this.props.handleSelect}>
<option value="0">男</option>
<option value="1">女</option>
</select>
)
}
});
var SignupForm=React.createClass({
getInitialState:function(){
return {
name:'',
password:'',
gender:''
}
},
<!-- 子组件事件委托 -->
handleSelect:function(event){
this.setState({
gender:event.target.value
})
},
handChange:function(key,event){
var newState={}
newState[key]=event.target.value
this.setState(newState)
},
render: function(){
console.log(this.state)
return (
<form>
<input type="text" placeholder="说的什么吧" onChange={this.handChange.bind(this,'name')} />
<input type="password" onChange={this.handChange.bind(this,'password')} />
<GenderSelect handleSelect={this.handleSelect}></GenderSelect>
</form>
)
}
});
ReactDOM.render(
<SignupForm></SignupForm>,
document.getElementById('example')
);
</script>
</body>
</html>
编写简单的Mixin函数
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<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">
<!-- Mixin=一组方法:1.横向抽离
2.面向切面编程,插件 -->
var BindingMixin = {
<!-- 多个函数作用相似的组件 参数key -->
changContent:function(key){
<!-- 作用域 -->
var _self=this
<!-- 函数闭包 -->
var newState={}
return function(event){
newState[key]=event.target.value
_self.setState(newState)
}
}
}
var HelloMessage=React.createClass({
<!-- 引用Mixin函数 -->
mixins:[BindingMixin],
getInitialState:function(){
return {
contentText:'',
password:''
}
},
render: function(){
return (
<form>
<input type="text" placeholder="说点什么吧" onChange={this.changContent('contentText')} />
<p>{this.state.contentText}</p>
<textarea onChange={this.changContent('password')} ></textarea>
<p>{this.state.password}</p>
</form>
)
}
});
<!-- 用于将模板转为HTML语言并插入指定的DOM节点 -->
ReactDOM.render(
<HelloMessage />,
document.getElementById('example')
);
</script>
</body>
</html>

组件嵌套+Mixin函数demo的更多相关文章
- Vue.js之组件嵌套小demo
Vue.js之组件嵌套的小demo项目 第一步:初始化一个wabpack项目,这里不在复述.第二步:在components文件夹下新建Header.vue Footer.vue和Users.vue三个 ...
- 5. React 组件的协同使用 组件嵌套和Mixin
组件是React的核心,构建大型项目时多个组件之间需要进行协同使用.可以从横向和纵向两个角度来实现组件的协同使用,纵向的协同使用就是组件嵌套,横向的协同使用就是Mixin(抽取公共方法 ...
- vue 基础-->进阶 教程(3):组件嵌套、组件之间的通信、路由机制
前面的nodejs教程并没有停止更新,因为node项目需要用vue来实现界面部分,所以先插入一个vue教程,以免不会的同学不能很好的完成项目. 本教程,将从零开始,教给大家vue的基础.高级操作.组件 ...
- 微信开源组件WCDB漫谈及Demo
代码地址如下:http://www.demodashi.com/demo/12422.html 前言 移动端的数据库选型一直是一个难题,直到前段时间看到了WeMobileDev(微信前端团队)放出了第 ...
- React 三大属性state,props,refs以及组件嵌套的应用
React 三大属性state,props,refs以及组件嵌套的应用 该项目实现了一个简单的表单输入添加列表的内容 代码如下 <!DOCTYPE html> <html> & ...
- [前端随笔][Vue] 多级菜单实现思路——组件嵌套
说在前面 本篇记录学习了vue-element-admin中的多级菜单的实现 [传送门] @vue/cli 4.2.2:vuex:scss:组件嵌套 正文 创建项目 npm create 项目名 // ...
- 【React】学习笔记(一)——React入门、面向组件编程、函数柯里化
课程原视频:https://www.bilibili.com/video/BV1wy4y1D7JT?p=2&spm_id_from=pageDriver 目录 一.React 概述 1.1.R ...
- Vue.js多重组件嵌套
Vue.js多重组件嵌套 Vue.js中提供了非常棒的组件化思想,组件提高了代码的复用性.今天我们来实现一个形如 <app> <app-header></app-head ...
- React入门---组件嵌套-5
组件嵌套 我们现在需要组件嵌套,所以要创建其他组件,目前有一个头部组件,在./components/header.js; 接下来在components文件中创建:底部组件footer.js 和主体组件 ...
随机推荐
- windows registry => control pannel
User Variables HKEY_CURRENT_USER\Environment System Variables HKEY_LOCAL_MACHINE\SYSTEM\CurrentContr ...
- post数据过大到服务端,接收不到的问题
在页面把datagrid上的数据post到服务端,解析提供导出.datagrid的数据大概有1w. 结果能post过去,但在服务端接收的数据显示null.但是如果post6000条左右就没问题. 经过 ...
- Lucene.net应用
1.加入盘古分词方法 /// <summary> /// 对输入的搜索的条件进行分词 /// </summary> /// <param name="str&q ...
- c++中的<<函义
1.一个是左移运算:x = 4<< 2; 2.输出流运算:cout <<x;//X的值输出流到设备中.
- 山东省第七届ACM省赛------Triple Nim
Triple Nim Time Limit: 2000MS Memory limit: 65536K 题目描述 Alice and Bob are always playing all kinds o ...
- sql 操作常用操作语句 新增、修改字段等
常用sql --sql 事务 BEGIN TRAN 事物名 )BEGIN ROLLBACK TRAN 事物名;RETURN;END COMMIT TRAN 事物名 --数据库清缓存 DBCC DROP ...
- 【翻译】利用Qt设计师窗体在运行时创建用户界面(Creating a user interface from a Qt Designer form at run-time)
利用Qt设计师窗体在运行时创建用户界面 我们利用Calculator窗体例子中创建的窗体(Form)来展示当一个应用(application)已经生成后,是可以在其运行时产生与例子中相同的用户界面. ...
- [OC] 理解Bitcode:一种中间代码
Tip:参考资料 理解Bitcode:一种中间代码 (内容从该博客摘录的.本随笔摘录些简要内容.) App Distribution Guide – App Thinning (iOS, watchO ...
- 为什么当多个inline-block的div中,如果有的div没有内容而有的div有内容,有内容的会下沉?
为什么当多个inline-block的div中,如果有的div没有内容而有的div有内容,有内容的会下沉? 就像这样 两个div高度相同,第二个我写了一个1当作 有内容吧,它就下沉了... 奇怪... ...
- 关于面试别问及Spring如何回答思路总结!
首先要知道 Spring两大核心IOC和AOP(Java轻量级业务层框架Spring两大核心IOC和AOP原理) IOC: 1.从Java最基本的创建对象开始 如Interface Driven De ...