Javascript 角度2+;使用jQuery进行服务器端渲染

Javascript 角度2+;使用jQuery进行服务器端渲染,javascript,jquery,angular,angular-universal,Javascript,Jquery,Angular,Angular Universal,我遇到了一些使人衰弱的事情 我现在正在做一个项目,它肯定需要在某个时候呈现在服务器端 该webapp允许用户上传图片,如个人资料图片和“普通”图片 我使用Foliotek()中的crupie来进行裁剪,效果很好,这正是我所需要的 但是Croppie依赖于jQuery。昨天我发现,如果我想让应用程序服务器端呈现,这可能是一个问题 所有jQuery都在ngAfterViewInit生命周期钩子中使用,所以我希望这能证明它是服务器端渲染 我知道有ng2 img cropper可用,但我不太热衷于实现它

我遇到了一些使人衰弱的事情

我现在正在做一个项目,它肯定需要在某个时候呈现在服务器端

该webapp允许用户上传图片,如个人资料图片和“普通”图片

我使用Foliotek()中的crupie来进行裁剪,效果很好,这正是我所需要的

但是Croppie依赖于jQuery。昨天我发现,如果我想让应用程序服务器端呈现,这可能是一个问题

所有jQuery都在ngAfterViewInit生命周期钩子中使用,所以我希望这能证明它是服务器端渲染

我知道有ng2 img cropper可用,但我不太热衷于实现它。但是,如果我可以将ng2 img cropper与服务器端渲染结合使用,那么我就必须这样做


或者我忽略了更好的东西吗?

您可以在服务器上使用jQuery,使用节点AFAIK。只需浏览npm并搜索合适的模块。不要忘记,该节点并没有DOM实现,所以您还需要虚拟DOM的模块

例如,您可以使用with。例如:

npm install jsdom
npm install jQuery

var jsdom = require('jsdom').jsdom
var myWindow = jsdom().createWindow()
var $ = require('jQuery')
var jq = require('jQuery').create()
var jQuery = require('jQuery').create(myWindow)

$("<h1>test passes</h1>").appendTo("body")
console.log($("body").html());
npm安装jsdom
npm安装jQuery
var jsdom=require('jsdom').jsdom
var myWindow=jsdom().createWindow()
var$=require('jQuery')
var jq=require('jQuery')。create()
var jQuery=require('jQuery')。创建(myWindow)
$(“测试通过”)。附录(“正文”)
log($(“body”).html());

我发现有一个Angular Universal(服务器端渲染)初学者项目可用:

我克隆了它并实现了Croppie,就像我在开发版本中所做的那样,一切都很好


所以。。。我想知道为什么我多次读到,如果在Angular 2+SSR项目中使用jQuery,事情将完全崩溃。马克斯·施瓦茨穆勒在他关于Udemy的演讲中也这样说过。无论如何我很高兴发现一切都正常工作。

正如我所知,当jquery使用“窗口”时,ssr会感到困惑,因为在服务器中我们没有窗口(窗口在浏览器中)。
但通常情况下,jquery是可以工作的。

这个答案并没有解决OP询问的任何服务器端渲染问题。实际上,您可能能够在节点应用程序中使用jQuery的想法与此无关。