1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import $ from 'jquery';
  4. //var $ = require('jquery');
  5.  
  6. $("#hello").html("hello22888888888888888888888");
  7.  
  8. class Animal {
  9. constructor(){
  10. this.type = 'animal'
  11. }
  12. says(say){
  13. console.log(this.type + ' says ' + say)
  14. }
  15. }
  16.  
  17. let animal = new Animal()
  18. animal.says('hello') //animal says hello
  19.  
  20. class Cat extends Animal {
  21. constructor(){
  22. super();
  23. this.type = 'cat'
  24. }
  25. }
  26.  
  27. let cat = new Cat()
  28. let ii=(i)=>{return i+13+6};
  29. cat.says('hello:'+ ii(3)) //cat says hello
  30.  
  31. function animals(...types){
  32. console.log(types)
  33. }
  34. animals('cat', 'dog', 'fish')
  35.  
  36. let cat1 = 'ken';
  37. let dog = 'lili';
  38. let zoo = {cat1, dog};
  39. console.log(zoo)
  40.  
  41. class Content extends React.Component {
  42. render () {
  43. return (
  44. <div>
  45. <input ref="myInput" type="text" value={this.props.myDataProp} onChange={this.props.updateStateProp} />
  46. <h4>{this.props.myDataProp}</h4>
  47. </div>
  48. )
  49. }
  50. };
  51.  
  52. class HelloMessage extends React.Component {
  53. constructor(props){
  54. super(props);
  55. this.state={
  56. value: 'Hello Runoob!',
  57. label:"hee"
  58. }
  59. }
  60.  
  61. handleChange(event) {
  62. // this.setState({value: event.target.value});
  63. let d= new Date();
  64. //this.refs.myInput2.focus();
  65. this.setState({
  66. value: event.target.value,
  67. label: event.target.value ? event.target.value : d.getTime()
  68. });
  69. console.log(this.state)
  70. }
  71. handleChange2(event) {
  72. // this.setState({value: event.target.value});
  73. let d= new Date();
  74. console.log('handleChange2:'+event.target.value)
  75.  
  76. }
  77.  
  78. render () {
  79. //var value = this.state.value;
  80. return (
  81. <div>
  82. <Content myDataProp = {this.state.value} updateStateProp = {this.handleChange.bind(this)}></Content>
  83. <button onClick={this.handleChange2.bind(this)}>点我</button>
  84. <h4>label:{this.state.label}</h4>
  85.  
  86. <CustomTextInput />
  87. </div>
  88. )
  89. }
  90. };
  91.  
  92. class CustomTextInput extends React.Component {
  93. constructor(props) {
  94. super(props);
  95. this.focus = this.focus.bind(this);
  96. this.name="ssss";
  97. }
  98.  
  99. focus() {
  100. // Explicitly focus the text input using the raw DOM API
  101. this.textInput.focus();
  102. }
  103.  
  104. render() {
  105. // Use the `ref` callback to store a reference to the text input DOM
  106. // element in an instance field (for example, this.textInput).
  107. return (
  108. <div>
  109. <input type="text" ref={(input) => { this.textInput = input; } } />
  110. <input type="button" value="Focus the text input" onClick={this.focus} />
  111. </div>
  112. )
  113. }
  114. }
  115.  
  116. ReactDOM.render( <HelloMessage />, document.getElementById('example'));
  117.  
  118. //孙子,将下拉选项的值传给爷爷
  119.  
  120. class Grandson extends React.Component {
  121. render() {
  122. return (
  123. <div>性别:
  124. <select onChange={this.props.handleSelect}>
  125. <option value="男">男</option>
  126. <option value="女">女</option>
  127. </select>
  128. </div>
  129. )
  130. }
  131. };
  132. //子,将用户输入的姓名传给爹
  133. //对于孙子的处理函数,父只需用props传下去即可
  134. class Child extends React.Component {
  135. //var Child = React.createClass({
  136. render() {
  137. return (
  138. <div>
  139. 姓名:<input onChange={this.props.handleVal}/>
  140. <Grandson handleSelect={this.props.handleSelect}/>
  141. </div>
  142. )
  143. }
  144. };
  145. //父组件,准备了两个state,username和sex用来接收子孙传过来的值,对应两个函数handleVal和handleSelect
  146. class Parent extends React.Component {
  147.  
  148. constructor(props) {
  149. super(props);
  150. this.state={
  151. username: '',
  152. sex: ''
  153. }
  154.  
  155. }
  156.  
  157. handleVal(event){
  158. this.setState({username: event.target.value});
  159. }
  160. handleSelect(event) {
  161. this.setState({sex: event.target.value});
  162. }
  163. render(){
  164. return (
  165. <div>
  166. <div>用户姓名:{this.state.username}</div>
  167. <div>用户性别:{this.state.sex}</div>
  168. <Child handleVal={this.handleVal.bind(this)} handleSelect={this.handleSelect.bind(this)}/>
  169. </div>
  170. )
  171. }
  172. };
  173. ReactDOM.render(
  174. <Parent />,
  175. document.getElementById('root')
  176. );

react 父子传值的更多相关文章

  1. React(7) --react父子组件传参

    react父子组件传参 父级向子级传参:在父组件中,我们引入子组件,通过给子组件添加属性,来起到传参的作用,子组件可以通过props获取父组件传过来的参数. 在父组件中: import React f ...

  2. 10.4 Vue 父子传值

    简单示例 APP.vue <template> <div> <img :src="imgSrc"> <!-- 父子传值 --> &l ...

  3. Vue父子传值

    昨天创建完项目以后,今日首先使用项目来做一个简单的导航栏体会一下Vue的使用 1.项目的结构: 2.首先在Vheader.Vue中编辑代码: <template> <header c ...

  4. day 100天 VUE 父子传值,单页面.

     一 .静态资源导入方法 启动服务  npm run serve <template> <div id ="app"> <h3>{{msg}}& ...

  5. 基于vue-cli,测试非父子传值时,碰到 keep-alive的神奇

    非父子传值测试 一直都很好奇非父子传值到底如何,结果入坑许久才爬出来,才知道在脚手架里测试就是坑. 问题: 测试非父子传值时,由于组件之间是通过路由进行跳转,值传过去又被刷掉 思路: 因为路由跳转,相 ...

  6. React父子组件的一个混淆点

    反正我自己是混淆了,React父子组件和组件类的继承弄混在一起了.这两个东西完全是不相关的. 父子组件可以看成两个组件标签的包含关系,在另外一个组件标签的内部就是子组件,父子组件通过这种关系通信. 组 ...

  7. vue传值(父子传值,非父子传值)

    vue组件传值,分为父子传值和非父子传值,父子传值又分为父传子和子传父. 组件之间的传值,实现了数据的联动,是从操作Dom到操作数据一个跳转性的突破,在学习vue双向绑定原理之后, 这种观念就应该继续 ...

  8. Vue中的父子传值问题

    个人网站 https://iiter.cn 程序员导航站 开业啦,欢迎各位观众姥爷赏脸参观,如有意见或建议希望能够不吝赐教! 好久没更博了,感觉下班后的时间莫名其妙就没有了,有了,了... 趁着端午放 ...

  9. Blazor和Vue对比学习(基础1.3):属性和父子传值

    组件除了要解决视图层展示.视图层与逻辑层的数据绑定,还需要解决一个重大问题,就是在组件树中实现数据传递,包括了父到子.子到父.祖到孙,以及任意组织之间.而我们上一章讲到的实现双向绑定的两个指令,Vue ...

随机推荐

  1. python中类的定义方法

    # coding =utf-8 ## 类的定义 ##-------------------------------------------------- class Employee: empCoun ...

  2. linux安装flume及问题

    验证是否安装成功: [root@master conf]# /usr/local/src/apache-flume-1.6.0-bin/bin/flume-ng versionError: Could ...

  3. 「LOJ#103」子串查找 (Hash

    题目描述 这是一道模板题. 给定一个字符串 A A A 和一个字符串 B B B,求 B B B 在 A A A 中的出现次数.AAA 和 BBB 中的字符均为英语大写字母或小写字母. A A A 中 ...

  4. css样式 -- 表格不会因为字体过长导致字体溢出的问题

    常常碰到因为表格大小就麽大了,字体过长会爆炸溢出的问题,我们后端就用这个可以了,溢出的可以省略号 ... 代替好了. /* 在表格css样式加上这三个就可以了 效果就会变成 “abc...” */ { ...

  5. 20个Flutter实例视频教程-第07节: 毛玻璃效果制作

    视频地址: https://www.bilibili.com/video/av39709290/?p=7 博客地址: https://jspang.com/post/flutterDemo.html# ...

  6. 读取MySQL数据表字段信息

    TP5句式 $fieldinfo = Db::query('SHOW FULL COLUMNS FROM '.$table);//查出数据表所有字段信息Field 字段Comment 字段注释

  7. TP5实现签到功能

    基于tp5 模型的一个签到功能: 由于存储所有的签到日期数据库会非常庞大,所以签到日期只存储近三个月的. 具体功能: 1.记录最近一次的签到时间 2.每次签到都会添加15积分 3.有连续签到的记录 C ...

  8. [Offer收割]编程练习赛46

    [Offer收割]编程练习赛46赛后题解 A.AEIOU 分析

  9. 51nod1181【素数筛】

    思路: 直接就是筛出素数,然后我很撒比的从那个地方往后for找一个位置也是质数的输出: #include <bits/stdc++.h> using namespace std; type ...

  10. Telnet 对memcached进行数据操作

    连接Telnet 127.0.0.1 11211 存储数据 add news 0 1 8 (news为数据名称,1为存储的时间,当为0的时候则为永久储存,永久缓存最多为30天,8为长度) aaaaaa ...