gpt4 book ai didi

angularjs - 使用 Angular 模块和 Node 模板以获得更好的重用能力

转载 作者:太空宇宙 更新时间:2023-11-04 00:58:00 24 4
gpt4 key购买 nike

我对网络编程和编码总体来说是新手。所以,如果这是一个新手问题或重复一个问题或者我的知识是错误的,请原谅我。

我所知道的

1.Angular 对 seo 不友好。不要误会我的意思,我知道有几种方法可以使其对搜索引擎优化友好(提供静态预渲染页面等)

2.Angular编码有很多优点

3.模块化代码可以使用 Angular 中的部分来编写,也可以在 jade、swig 等模板中编写

案例

让我们举一个例子,网页有 5 个部分(页眉、jambotron、文本、某种形式、页脚)。现在,如果我们想要可重用的模块化代码,我们可以编写 Angular 部分并使用 ng-include 或 ui-view 输入它们。但它对搜索引擎优化不友好

我们按以下方式来做怎么样:

1.使用模板生成html页面(我使用swig)。

2.为代码的每个部分编写单独的模块(页眉、jambotron、文本、某种形式、页脚)。

3.使用依赖注入(inject)将这些模块注入(inject)到页面的 Controller 中。

4.像往常一样使用 Angular 函数和 Controller 中的所有内容。

5.获得一个SEO友好、模块化、可重用的页面。

问题

1.有人用过这种方法吗?

2.如果没有,是吗?如果是的话,除了我提到的之外还有其他原因吗?

3.还有其他更好的方法吗?为什么?

4.如果我继续这样做,我应该如何在注入(inject)的不同模块之间共享页面的数据?有什么指南吗?来源?

最佳答案

你所说的你所知道的是对的:

1.Angular is not seo friendly. Don't get me wrong, I know there are several methods to make it seo friendly(supply static pre-rendered pages., etc)

2.coding in angular has many advantages

3.modular code can be written using partials in angular and also in templates like jade, swig etc

<小时/>现在,我从你的问题中了解到的是,你希望利用 Angular 优势仍然使你的应用程序 SEO 友好,对吗?

所以,我把你的问题分成这样的,你所说的,

  1. 在服务器上使用 swig 生成模板(使网页变得对 SEO 友好),
  2. 在每个页面中使用 Angular 并从 Angular 中获得优势。
<小时/>

答案:

从 Angular 获得的优势是什么:

  1. Angular 旨在用于创建单页面应用程序。即下载所有内容一次,然后让用户玩它,而不向服务器发出请求(对于 html),并且感觉速度非常快。

  2. 模块化代码,采用 MVC 模式。

  3. 数据绑定(bind)

如果你使用 swig 而不是 Angular 路由/模板会发生什么:

  1. 你失去了 Angular 的第一个优势,即你每次都会向服务器发出每个 html 页面的请求。

  2. 每次您想要加载新 View 时,您都会下载所有库、Angular、其指令、其他依赖项。因此,增加了数据传输,并减慢了页面加载速度。

  3. 您仍然可以在 Angular 中使用数据绑定(bind),这很有用,但是仅仅对于数据绑定(bind),使用整个 Angular 不是一个选择,还有很多其他库可用于数据绑定(bind)

<小时/>

现在你的问题列表:

有人使用这种方法吗?如果没有,为什么?如果是,除了我提到的之外,还有其他原因吗?

是的,人们使用服务器端模板,这使他们更容易使 Web 应用程序 SEO 友好,但这就是您需要从项目中排除 Angular 的地方,因为如果应用程序不再是单页应用程序,它也不会再有任何好处。

还有其他更好的方法吗?为什么?

要么坚持使用 Angular 来制作单页应用程序并且不使用 swig,要么使用它并排除 Angular。

  1. 即使您选择排除 Angular,也有许多其他库可用于数据绑定(bind),因此您可以从中受益。其余的在这种情况下确实没有用。
  2. 如果您选择包含 Angular,这确实是不错的选择,但不要使用 swig 来破坏 Angular 的 SPA 性质,而是尝试针对 Angular 进行 SEO。

如果我继续这样做,我应该如何在注入(inject)的不同模块之间共享页面的数据?有什么指南吗?

如果你真的选择,虽然是个错误的选择,但共享数据只能通过服务器来实现,并不真正取决于你使用的东西(swig、ejs、jade)。只需阅读 swig 的文档即可。

关于angularjs - 使用 Angular 模块和 Node 模板以获得更好的重用能力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28741237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com