Javascript 如果我开始使用React/flux,我是否应该从头开始重新创建所有页面(html和css)?

Javascript 如果我开始使用React/flux,我是否应该从头开始重新创建所有页面(html和css)?,javascript,reactjs,reactjs-flux,flux,Javascript,Reactjs,Reactjs Flux,Flux,我已经建立了我的应用程序的几个页面。由于我需要一个javascript框架和亚秒级的动态页面,我想我会尝试React/Flux 尽管读了很多书,但我不完全理解您是否可以保留我现有的代码库(html/js),并且只在需要与数据库/动态实现交互的网页的某些块上使用React(jsx,模块) 让我们举一个例子: 我的页面有很多东西:bootstrap我做了很多调整(使用css),实际上是使用幕后javascript/DOM ex进行下拉,还有其他东西)、respond.js在ie8上启用媒体查询(我猜

我已经建立了我的应用程序的几个页面。由于我需要一个javascript框架和亚秒级的动态页面,我想我会尝试React/Flux

尽管读了很多书,但我不完全理解您是否可以保留我现有的代码库(html/js),并且只在需要与数据库/动态实现交互的网页的某些块上使用React(jsx,模块)

让我们举一个例子: 我的页面有很多东西:bootstrap我做了很多调整(使用css),实际上是使用幕后javascript/DOM ex进行下拉,还有其他东西)、respond.js在ie8上启用媒体查询(我猜是使用DOM),还有很多第三方工具,比如intercom.io,甚至是屏幕底部的google analytics js跟踪窗口。 您可以在这里看到页面的外观

我的需要:我只需要在块(D)上进行动态调整和实时功能,所有其他的,标题(B),对讲机(C)和其他可以保持原样,如果我可以将它们保留在当前的html代码中,这将节省我很多时间

所以我的问题是:

  • (1) 我是否必须转换react页面上的所有内容,还是只将jsx/react块(D)放入,并保持其余部分不变

  • 与(1)相关,我想利用React带来的主要优势(虚拟DOM和差异),即使整个页面不在React上,我仍然能够使用它吗

  • 如果答案基本上是“要么全是,要么什么都不是,你必须在react jsx中完成这一切,然后重做你的整个页面”,转换你的html并找到使用DOM的所有js脚本的替代品,比如下拉列表、灯箱、intercom.io脚本、google analytics脚本,那么这很难吗?我的意思是,或者我可以保留css并使用它来更改html吗?这真的很容易,但我担心这里有一个陷阱…:)


    • 我对React还不熟悉,但根据我收集的信息,您可以根据需要添加React代码。您不必重新编写整个应用程序。这包括在任何需要的地方使用您概述的功能。

      就应用程序的视图层而言,一切都可以通过React完成 (是的,react可以满足您的所有要求)

      我建议的第一件事是前往react站点获取文档,使用Google和YouTube做一些教程,然后开始使用react重新构建你的应用程序,但不完全是。(使用JSX)

      因为你现在了解了React的工作原理以及如何使用道具和状态,你很可能会一次合并你的应用程序片段

      最重要的是要考虑语境。React只是Javascript,因此您可以绑定、调用和应用现有应用程序中的任何对象

      var blockA = React.createClass~
          blockB = React.createClass~
          blockC = React.createClass~
          blockD = React.createClass~
      
      React只是组件,每个块都是组件

      但是我再强调也不为过了,我理解react的基本原理,这一点都不难

      编辑

      是的,使用JSX一开始我认为它很愚蠢,但它很棒

      有了DOM操作,一切都有可能。React使用其DOM副本更快地操纵实际DOM。对于不涉及DOM的部分代码,它不会在React中产生巨大的差异,但React通过将状态更改传递给其组件的子级,具有漂亮的工作流。实际上,这取决于您,但如果您使用React,请在React中执行所有DOM操作。您尝试执行的操作中有70%以上可能是DOM操作


      总的来说,我的建议是,不要想太多这会有多“困难”。想想你学习基础知识的速度有多快。这很容易掌握。

      问题是我在当前页面html/css3上花了很多时间。所以我知道我可以在React上完成所有工作,但我不想(如果可以的话):)我想知道,即使我只在块d上使用React/jsx/插件,我是否能获得React的速度/实时性优势(别管我的标题,我的intercom.io聊天窗口,等等…)但是,当然,我会花时间去理解和学习图托舞曲,以获得真正的反应。是的,你会在速度上获得优势,但只在blockD上。任何其他使用$('elem')或document.getElementById('elem')的东西或者类似的方法不会更快。你可以一次尝试一个块,然后从那里继续。好的,谢谢,这就是我一直在等待的答案:至少我没有被阻止从第一天开始重新创建所有内容。我可以移动块D,这是最需要“差异”的块google analytics:理想情况下,将该代码保留在嵌入html脚本标记中。只需将respond.js作为普通和intercom包含在内。react不是javascript的重新实现。它更多的是关于用户界面,因此任何与用户界面无关的代码都是可视的你可以离开。