【问题标题】:Angular 7 configuration or alternatives?Angular 7 配置或替代方案?
【发布时间】:2019-07-07 09:36:19
【问题描述】:

我一直在苦苦思索如何将 Angular 7 实施到我的 .NET Core 2.X 项目中,以保持两个框架的优点,但没有成功。我面临的主要问题是 Angular 想要控制我的前端以及它如何接收它。我的意思是它迫使你对所有东西都使用静态模板,我明白了这个概念,但是对于我的项目,这将生成大量的模板/组件或带有一堆未使用的显示元素的模板。拥有更多从服务器接收模板然后处理所有绑定、DI、更新等的通用前端组件更有意义。

我查看了有关动态组件、动态模板URL、自定义元素和许多其他主题的几个选项和问题。但我看到的大多数答案的问题是,它们实际上都没有动态模板,它们可能使用动态组件,但实际加载的控件最终仍然有一个静态模板。

This question seems to be pointed to most

我确实遇到了solution,这似乎是一个选项,但后来我意识到它必须使用 JIT 编译器运行。当一切都可以提前编译时,这又给客户端增加了不必要的负载。

还有一个关于使用 Angular Elements 的方法,但它有自己的 problems apparently,如果不分配重新布线或其他变通方法以保持一切正常,确实无法解决问题。

动态组件加载器听起来很有希望,从 Angular site 来看

组件模板并不总是固定的。一个应用程序可能需要 在运行时加载新组件。

这意味着模板可以动态设置,但同时也意味着在运行时加载新组件将解决该问题。但是加载的组件有一个静态模板。模板无处生成或更改,还是我只是遗漏了什么?

我查看了Angular SSR 并且几乎可以处理它,但我似乎无法弄清楚如何通过控制器或以其他方式利用 .NET Core/ASP.NET 或动态服务器生成的任何好处内容。它似乎只是将编译从客户端卸载到服务器上,但仍然使用相同的静态模板。有没有办法使用 Node.js 渲染 MVC 路由然后发送模块?

曾经有一种方法可以将组件的 TemplateUrl 设置为服务器上的路由,但现在不允许这样做,这使得我发现的很多答案都过时了,但我想设置它的确切方式.

我能想到的唯一真正的选择是使用 MVC 生成动态模块/组件,然后将它们加载到 Angular 应用程序中。通过控制器编译 .cshtml 视图以创建 HTML 字符串,然后用于编译 Angular 模块/组件,然后将其发送到客户端并将其加载到 Angular 应用程序中是否可行?

我了解如何将我的视图编译为 html 字符串,但我不确定如何编译 Angular 模块,或者即使这是正确的想法,或者是否有更好的处理方法?

在我看来,这应该是一件相当容易的事情,所有工具似乎都在那里,但不知道如何让事情正常工作。

【问题讨论】:

  • 为什么使用角度?您即将禁用 Angular 的大部分优势。可能你应该研究轻量级渲染库的方向,比如 React 或 Vue。
  • @smnbbrv 基本上我的背景是 AngularJs,主要是我尝试使用 Angular 的原因,我认为由于所有内容最终都编译为 JS,我可能能够简单地绕过 Angular 的控制模板,只使用与我的应用程序相关的内容。我不反对切换到另一个框架,实际上是在我原来的问题中但把它拿出来(不想脱离话题)。我对 React 或 Vue 不是很熟悉,鉴于我的最终目标(轻量级、MVC 等),你知道哪一个更适合我的应用程序吗?

标签: javascript angular asp.net-core-mvc angular-cli angular7


【解决方案1】:

我最近开始使用 Angular(在使用 .net、jquery、javascript、react 之后),我的第一次交互是直接使用 Angular 7。我注意到的第一件事是我可以多快地使用 Angular 进行开发,但是有很多我什至不确定的文件,但是与反应相比是生成的,但是反应的学习曲线肯定比 Angular 更高。

如果您需要真正轻量级的东西,那么您绝对应该选择库和框架。 react 是一个不错的选择,但是它不是 MVC 驱动的,您会发现它与 Angular 非常不同(我从某个时候开始意识到这一点)。

除此之外,如果我的大部分代码都是静态的,我可以选择某种可以预编译的 HTML 模板框架(即 nunjucks)。

对于在 .net 中创建的组件,我认为不可能将它们预编译为 angular,因为如果您需要那些具有动态数据的组件,您只会在 .net 中创建一些东西。

【讨论】:

    猜你喜欢
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-15
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多