React+BootStrap+ASP.NET MVC实现自适应和组件的复用

前端之家收集整理的这篇文章主要介绍了React+BootStrap+ASP.NET MVC实现自适应和组件的复用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1、前端采用bootstrap3进行架构

2、后端采用asp.net mvc进行开发

开发工具vs2010 mvc4需要安装sp1的补丁。

3、js组件的封装采用react

  1. 新建mvc项目
    BootStrapReactAndMVC。在Views\Shared\新建_Layout.cshtml文件。将bootstrap的引用进行添加
  2. 新建HomeController和ReportController两个Controller对象。
  3. 新建renHangcpu.jsx文件文件内容如下
  1. var cpuWatch = React.createClass({
  2. render: function() {
  3. return (<div>
  4. <h2 className="sub-header">cpu监控</h2>
  5. <div className="row placeholders">
  6. <div className="col-xs-6 col-sm-3 placeholder">
  7. <img data-src="holder.js/200x200/auto/sky" className="img-responsive" alt="Generic placeholder thumbnail"/>
  8. <h4>cpu1</h4>
  9. <span class="text-muted">使用率10%</span>
  10. </div>
  11. <div className="col-xs-6 col-sm-3 placeholder">
  12. <img data-src="holder.js/200x200/auto/vine" className="img-responsive" alt="Generic placeholder thumbnail"/>
  13. <h4>cpu2</h4>
  14. <span class="text-muted">使用率10%</span>
  15. </div>
  16. <div className="col-xs-6 col-sm-3 placeholder">
  17. <img data-src="holder.js/200x200/auto/sky" className="img-responsive" alt="Generic placeholder thumbnail"/>
  18. <h4>cpu3</h4>
  19. <span class="text-muted">使用率10%</span>
  20. </div>
  21. <div className="col-xs-6 col-sm-3 placeholder">
  22. <img data-src="holder.js/200x200/auto/vine" className="img-responsive" alt="Generic placeholder thumbnail"/>
  23. <h4>cpu4</h4>
  24. <span class="text-muted">使用率20%</span>
  25. </div>
  26. </div>
  27. </div>
  28. );
  29. }
  30. })

新建renhangyingyanjsx.jsx文件文件内容如下

  1. var YingPanWatch = React.createClass({
  2. render: function () {
  3. return (<div><h2 className="sub-header">硬盘吞吐量</h2>
  4. <div className="table-responsive">
  5. <table className="table table-striped">
  6. <thead>
  7. <tr>
  8. <th>#</th>
  9. <th>磁盘1</th>
  10. <th>磁盘2</th>
  11. <th>磁盘3</th>
  12. <th>磁盘4</th>
  13. </tr>
  14. </thead>
  15. <tbody>
  16. <tr>
  17. <td>1,001</td>
  18. <td>100</td>
  19. <td>100</td>
  20. <td>100</td>
  21. <td>100</td>
  22. </tr>
  23. <tr>
  24. <td>1,001</td>
  25. <td>100</td>
  26. <td>100</td>
  27. <td>100</td>
  28. <td>100</td>
  29. </tr>
  30. </tbody>
  31. </table>
  32. </div>
  33. </div>)
  34. }
  35. })

sx不能被直接引用。我们要用ES的编译器进行编译。

http://babeljs.cn/repl/ 在这个网址上进行编译。

编译后的文件如下

renHangcpu1.js 可以直接引用

  1. "use strict";
  2.  
  3. var cpuWatch = React.createClass({
  4. displayName: "cpuWatch",render: function render() {
  5. return React.createElement(
  6. "div",null,React.createElement(
  7. "h2",{ className: "sub-header" },"cpu监控"
  8. ),React.createElement(
  9. "div",{ className: "row placeholders" },React.createElement(
  10. "div",{ className: "col-xs-6 col-sm-3 placeholder" },React.createElement("img",{ "data-src": "holder.js/200x200/auto/sky",className: "img-responsive",alt: "Generic placeholder thumbnail" }),React.createElement(
  11. "h4","cpu1"
  12. ),React.createElement(
  13. "span",{ "class": "text-muted" },"使用率10%"
  14. )
  15. ),{ "data-src": "holder.js/200x200/auto/vine","cpu2"
  16. ),"cpu3"
  17. ),"cpu4"
  18. ),"使用率20%"
  19. )
  20. )
  21. )
  22. );
  23. }
  24. });

renhangyingpanjs.js 可以直接被引用

  1. "use strict";
  2.  
  3. var YingPanWatch = React.createClass({
  4. displayName: "YingPanWatch",render: function render() {
  5. return React.createElement(
  6. "div",null,React.createElement(
  7. "h2","硬盘吞吐量"
  8. ),React.createElement(
  9. "div",{ className: "table-responsive" },React.createElement(
  10. "table",{ className: "table table-striped" },React.createElement(
  11. "thead",React.createElement(
  12. "tr",React.createElement(
  13. "th","#"
  14. ),"磁盘1"
  15. ),"磁盘2"
  16. ),"磁盘3"
  17. ),"磁盘4"
  18. )
  19. )
  20. ),React.createElement(
  21. "tbody",React.createElement(
  22. "td","1,001"
  23. ),"100"
  24. ),"100"
  25. )
  26. ),"100"
  27. )
  28. )
  29. )
  30. )
  31. )
  32. );
  33. }
  34. });

4、然后在下面的view Home/Index上我们添加如下的代码

  1. @{
  2. ViewBag.Title = "欢迎使用";
  3. ViewBag.WhichPage="Home";
  4. Layout = "~/Views/Shared/_Layout.cshtml";
  5. }
  6.  
  7.  
  8. @section Scripts {
  9. <script type="text/babel">
  10. ReactDOM.render(
  11. <cpuWatch/>,document.getElementById('divcpu')
  12. );
  13.  
  14. ReactDOM.render(
  15. <YingPanWatch/>,document.getElementById('divYingpan')
  16. );
  17.  
  18. </script>
  19. }
  20.  
  21. <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main" >
  22. <div id="divcpu"></div>
  23. <div id="divYingpan"></div>
  24. </div>

在Report的Index上添加如下代码

  1. @{
  2. ViewBag.Title = "欢迎使用";
  3. Layout = "~/Views/Shared/_Layout.cshtml";
  4. ViewBag.WhichPage="Report";
  5. }
  6.  
  7.  
  8. @section Scripts {
  9. <script type="text/babel">
  10. ReactDOM.render(
  11. <cpuWatch/>,document.getElementById('divYingpan')
  12. );
  13.  
  14. </script>
  15. }
  16.  
  17. <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main" >
  18.  
  19. <div id="divYingpan"></div>
  20. <div id="divcpu"></div>
  21. </div>

运行结果如图:



猜你在找的React相关文章