资讯专栏INFORMATION COLUMN

React Starter Kit 学习笔记

longshengwang / 2024人阅读

摘要:根据页面中中的例子汇总修改而成。代码代码流逝时间计时器按钮点击计数流逝时间计时器写法实时求解一元二次方程调用组件制作动画效果代码仅在例中使用

根据http://reactjs.cn/react/docs/...页面中Starter Kit 15.3.1中的例子汇总修改而成。

HTML代码

</>复制代码

  1. React <span class="hljs-built_in">test</span>

JS代码

</>复制代码

  1. const container1 = document.getElementById("container1")
  2. const container2 = document.getElementById("container2")
  3. const container3 = document.getElementById("container3")
  4. const container4 = document.getElementById("container4")
  5. const container5 = document.getElementById("container5")
  6. const container6 = document.getElementById("container6")
  7. //1 "Hello" + name
  8. function Welcome(props) {
  9. return

    Hello, { props.name } < /h1>;

  10. }
  11. const element = < Welcome name = "Diary" / > ;
  12. ReactDOM.render(
  13. element,
  14. container1
  15. );
  16. //2 流逝时间计时器
  17. var Elapsed = React.createClass({
  18. render: function () {
  19. var elapsed = Math.round(this.props.elapsed / 100);
  20. var seconds = elapsed / 10 + (elapsed % 10 ? "" : ".0");
  21. var message =
  22. "React has been successfully running for " + seconds + " seconds.";
  23. return

    { message } < /p>;

  24. }
  25. });
  26. var start = new Date().getTime();
  27. setInterval(function () {
  28. ReactDOM.render( < Elapsed elapsed = { new Date().getTime() - start }
  29. / > ,
  30. container2
  31. );
  32. }, 50);
  33. //3 按钮点击计数
  34. var Counter = React.createClass({
  35. getInitialState: function () {
  36. return {
  37. count: 2,
  38. sum: 100
  39. };
  40. },
  41. handleClick: function () {
  42. this.setState({
  43. count: this.state.count * this.state.count,
  44. });
  45. },
  46. handleDoubleClick: function () {
  47. this.setState({
  48. count: 2,
  49. sum: 1000
  50. })
  51. },
  52. render: function () {
  53. return (
  54. < button onClick = { this.handleClick } onDoubleClick = { this.handleDoubleClick }>
  55. sum - count: { this.state.sum - this.state.count } < /button>
  56. );
  57. }
  58. });
  59. ReactDOM.render( < Counter / > ,
  60. container3
  61. );
  62. //4 流逝时间计时器(ES6写法)
  63. class ExampleApplication extends React.Component {
  64. render() {
  65. var elapsed = Math.round(this.props.elapsed / 100);
  66. var seconds = elapsed / 10 + (elapsed % 10 ? "" : ".0");
  67. var message =
  68. `React has been successfully running for ${seconds} seconds.`;
  69. return

    { message } < /p>;

  70. }
  71. }
  72. var start = new Date().getTime();
  73. setInterval(() => {
  74. ReactDOM.render( < ExampleApplication elapsed = { new Date().getTime() - start }/>,
  75. container4
  76. );
  77. }, 50);
  78. //5 实时求解一元二次方程
  79. var QuadraticCalculator = React.createClass({
  80. getInitialState: function() {
  81. return {
  82. a: 1,
  83. b: 3,
  84. c: -4
  85. };
  86. },
  87. /**
  88. * This function will be re-bound in render multiple times. Each .bind() will
  89. * create a new function that calls this with the appropriate key as well as
  90. * the event. The key is the key in the state object that the value should be
  91. * mapped from.
  92. */
  93. handleInputChange: function(key, event) {
  94. var partialState = {};
  95. partialState[key] = parseFloat(event.target.value);
  96. this.setState(partialState);
  97. },
  98. render: function() {
  99. var a = this.state.a;
  100. var b = this.state.b;
  101. var c = this.state.c;
  102. var root = Math.sqrt(Math.pow(b, 2) - 4 * a * c);
  103. var denominator = 2 * a;
  104. var x1 = (-b + root) / denominator;
  105. var x2 = (-b - root) / denominator;
  106. return (
  107. ax2 + bx + c = 0
  108. Solve for x:

  109. a:

  110. b:

  111. c:

  112. x: {x1}, {x2}
  113. );
  114. }
  115. });
  116. ReactDOM.render(
  117. ,
  118. container5
  119. );
  120. //6 调用React组件CSSTransitionGroup制作动画效果
  121. var CSSTransitionGroup = React.addons.CSSTransitionGroup;
  122. var INTERVAL = 2000;
  123. var AnimateDemo = React.createClass({
  124. getInitialState: function() {
  125. return {current: 0};
  126. },
  127. componentDidMount: function() {
  128. this.interval = setInterval(this.tick, INTERVAL);
  129. },
  130. componentWillUnmount: function() {
  131. clearInterval(this.interval);
  132. },
  133. tick: function() {
  134. this.setState({current: this.state.current + 1});
  135. },
  136. render: function() {
  137. var children = [];
  138. var colors = ["#fac", "#cdc", "#36d", "#ca0", "#0aa"];
  139. for (var i = this.state.current, pos=0; i < this.state.current + colors.length; i++, pos++) {
  140. var style = {
  141. left: pos * 128,
  142. background: colors[i % colors.length]
  143. };
  144. children.push(
    {i}
    );
  145. }
  146. return (
  147. {children}
  148. );
  149. }
  150. });
  151. ReactDOM.render(
  152. ,
  153. container6
  154. );

CSS代码(仅在例6中使用)

</>复制代码

  1. .example-enter,
  2. .example-leave {
  3. -webkit-transition: all .25s;
  4. transition: all .25s;
  5. }
  6. .example-enter,
  7. .example-leave.example-leave-active {
  8. opacity: 0.01;
  9. }
  10. .example-leave.example-leave-active {
  11. margin-left: -128px;
  12. }
  13. .example-enter {
  14. margin-left: 128px;
  15. }
  16. .example-enter.example-enter-active,
  17. .example-leave {
  18. margin-left: 0;
  19. opacity: 1;
  20. }
  21. .animateExample {
  22. display: block;
  23. height: 128px;
  24. position: relative;
  25. width: 384px;
  26. }
  27. .animateItem {
  28. color: white;
  29. font-size: 36px;
  30. font-weight: bold;
  31. height: 128px;
  32. line-height: 128px;
  33. position: absolute;
  34. text-align: center;
  35. -webkit-transition: all .25s; /* TODO: make this a move animation */
  36. transition: all .25s; /* TODO: make this a move animation */
  37. width: 128px;
  38. }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/81877.html

相关文章

  • 服务端渲染的React手脚架。完美使用 React, Redux, and React-Router

    摘要:服务端渲染的手脚架这个启动包的设计是为了让你使用一整套最新最酷的前端技术,所有都是可配置,富特性,基于已经提供代码热加载,使用预处理,单元测试,代码覆盖率报告,代码分割等等更多。 Universal React Starter Kit 服务端渲染的React手脚架 这个启动包的设计是为了让你使用一整套最新最酷的前端技术,所有都是可配置,富特性,基于webpack已经提供代码热加载,使用...

    zhouzhou 评论0 收藏0
  • 服务端渲染的React手脚架。完美使用 React, Redux, and React-Router

    摘要:服务端渲染的手脚架这个启动包的设计是为了让你使用一整套最新最酷的前端技术,所有都是可配置,富特性,基于已经提供代码热加载,使用预处理,单元测试,代码覆盖率报告,代码分割等等更多。 Universal React Starter Kit 服务端渲染的React手脚架 这个启动包的设计是为了让你使用一整套最新最酷的前端技术,所有都是可配置,富特性,基于webpack已经提供代码热加载,使用...

    RayKr 评论0 收藏0
  • 服务端渲染的React手脚架。完美使用 React, Redux, and React-Router

    摘要:服务端渲染的手脚架这个启动包的设计是为了让你使用一整套最新最酷的前端技术,所有都是可配置,富特性,基于已经提供代码热加载,使用预处理,单元测试,代码覆盖率报告,代码分割等等更多。 Universal React Starter Kit 服务端渲染的React手脚架 这个启动包的设计是为了让你使用一整套最新最酷的前端技术,所有都是可配置,富特性,基于webpack已经提供代码热加载,使用...

    DC_er 评论0 收藏0
  • 前端相关框架总和

    摘要:前端框架总和有很多小伙伴工作开发需要很多的框架和软件,那么接下来就为大家介绍一下相关的框架和软件设计用于构建用户界面的声明性,高效且灵活的库。为应用程序中的每个状态设计简单视图,当数据发生变化时,将有效地更新和呈现正确的组件。 前端框架总和 有很多小伙伴工作开发需要很多的框架和软件,那么接下来就为大家介绍一下相关的框架和软件 1.UI设计 react    用于构建用户界面的声明性...

    senntyou 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<