问题标签 [isomorphic-javascript]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 在同构 React Web 应用程序中选择性地进行服务器渲染的最佳方法是什么?
我希望具有大量内容的网页具有最佳性能。特别有趣的是,在移动设备上,我希望用户尽快看到首屏内容,然后让应用程序尽快启动。
我有一个在浏览器环境中但在服务器环境中isBrowser
的变量。考虑以下渲染函数:true
false
请注意,通过render()
这种方式构建,服务器要渲染的标记更少,通过网络传输的数据更少,浏览器在第一次通过时要渲染的标记也更少。
这工作正常,但在控制台反应警告
React 尝试在容器中使用重用标记,但校验和无效。这通常意味着您正在使用服务器渲染,并且在服务器上生成的标记不是客户端所期望的。React 注入了新的标记来补偿哪些工作,但是您已经失去了服务器渲染的许多好处。相反,要弄清楚为什么生成的标记在客户端或服务器上是不同的。
在服务器上,React 使用作为属性嵌入到顶级元素(例如 ex data-react-checksum="941190765"
)中的校验和来呈现标记。然后在客户端,react 在第一次渲染后计算校验和,如果它与服务器的校验和不同,它会完全丢弃服务器生成的标记并用客户端生成的标记替换它。
作为一种解决方法,我发现在我的顶级组件的componentDidMount
生命周期方法中,我可以在下一个动画帧上安排以下操作:
然后我可以像这样编写我的渲染方法并且反应没有产生任何关于校验和的警告:
这样做有什么明显的性能优势吗?无论哪种情况,首屏内容都会以同样快的速度出现,对吧?额外的复杂性是否合理?
express - 如何从另一个处理程序调用 express.js 处理程序
我正在构建一个在服务器上使用 express.js 的同构 React 应用程序。客户端应用程序向其他快速处理程序发出许多 AJAX 请求,这些请求当前需要它们向自身发出多个 HTTP 请求。
作为一种优化,我想拦截我知道服务器处理的请求并直接调用它们(从而避免离开应用程序边界的成本)。我已经访问了应用程序路由器以了解它处理哪些路由,但是我正在努力寻找启动新请求的最佳方式。所以我的问题是:
如何快速处理来自程序源而不是网络的 HTTP 请求?
meteor - 在meteor.user中hashedToken有什么用
嗨,我是 Meteor 的新手,我想知道在 Meteor.user 对象中生成的 hashedToken 的用途。
在 Meteor 文档中解释了服务对象,
包含特定登录服务使用的数据。例如,它的 reset 字段包含忘记密码链接使用的令牌,它的 resume 字段包含用于让您在会话之间保持登录的令牌。
当我检查本地存储时,Meteor.loginToken 似乎与 hashedToken 不同。
所以我的问题是,1.本地存储中生成的 Meteor.loginToken 和服务对象内部生成的 hashedToken 有什么区别?2.为什么service对象里面的resume.loginTokens也是一个数组?
任何帮助表示赞赏...
javascript - 客户端反应脚本覆盖服务器端呈现的道具
在我的服务器端反应渲染中,我将一个属性传递给 JSX:
JSX 看起来像这样:
现在,我还需要在客户端渲染 JSX,以便拥有事件侦听器等:
问题是:因为渲染的标记不同,文本字段的值会丢失。我怎么能解决这个问题?
clojure - 错误呈现 facebook 与服务器中的 java (clojure) 反应:无法读取属性“__reactAutoBindMap”
我正在尝试在服务器中渲染我的反应组件,但我遇到了一些问题,我关注了这篇文章
http://augustl.com/blog/2014/jdk8_react_rendering_on_server/
这是我的代码
dlet 宏打印这个
所有这些绑定都是字符串...
这是评估字符串行中的错误消息..fails
我正在使用最新的反应版本,如果您知道可能是什么问题,请告诉我,非常感谢大家!...
reactjs - React.js 0.13 - 警告:有东西直接调用了 React 组件。改用工厂或 JSX
运行服务器端下面的代码,我得到
“警告:有些东西正在直接调用 React 组件。请改用工厂或 JSX。”
但是我在server.js中使用了一个工厂(当不使用 JSX 时),并且在我使用 JSX的组件中。所以有什么问题?
好的,然后我尝试在父组件中使用工厂(更改var Child = require('./Child');
为var Child = React.createFactory(require('./Child'));
在这种情况下服务器工作正常,但客户端不:
instantiateReactComponent.js:43 Uncaught TypeError: Cannot read property 'mountComponent' of undefined
那么如何让它在服务器和客户端上运行呢?
组件/Parent.js:
组件/Child.js:
server.js:
客户端.js:
webpack - Webpack:忽略客户端库服务器端
我正在尝试使用 webpack 捆绑在服务器端和客户端呈现的反应代码。我尝试使用的一些库(如glidejs)完全假设它们正在浏览器中执行。
在 componentDidMount 或其他不会在服务器上执行的点之前,我实际上并没有使用 lib。
我怎么能要求它们,但基本上只是让它们在节点环境中什么都不做?
Glidejs 特别想要 jquery、window 和 document。给它 jquery 似乎很好,但我不知道如何处理窗口和文档。
node.js - 加载 Semantic-UI css 时 ReactJS 事件不会触发
我最近开始学习 ReactJS 并尝试实现一个简单的选择题。如果我不考虑样式,一切都会正常工作,但如果我包含语义用户界面的 css 文件,那么事情就会停止正常工作。具体来说,我在 MultipleChoiceAnswer 中的 onChange 处理程序永远不会被调用,但其他生命周期函数仍然可以正常工作。代码如下。
问题.js
索引.ejs
你能帮忙吗?我无法使用简单的单选按钮来工作,这很愚蠢>。>
javascript - 从 React.js 进行 RESTful API 调用
我正在为同构 JavaScript 应用程序做一个 POC,以从服务器端呈现 HTML。POC 使用简单的 HTML,但我想进行 API 调用并获取 JSON 响应并发送到渲染函数。我尝试了各种方法,但它不起作用。
我错过了什么?我对 React.js 很陌生。
reactjs - 同构 ReactJS 或 Web Components(Polymer) 开发者应该遵循哪一个?
这些年来,我们看到了多种用于 Web 开发的技术,例如:
同构反应:
它提供了客户端和服务器之间共享的通用代码库。
网页组件:
Polymer.js 展示了为浏览器创建原生元素的方式。
这两种技术都在朝着相反的方向发展。Web 开发人员应该遵循哪一种?这里欢迎任何建议/评论。