首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AEM 6.2 -与Web组件(聚合物)和角度一起工作

AEM 6.2 -与Web组件(聚合物)和角度一起工作
EN

Stack Overflow用户
提问于 2016-10-16 13:30:54
回答 2查看 3.2K关注 0票数 3

我正在开发一个基于AEM6.2的大型门户网站的PoC。

在此之前,我一直在使用遵循AEM前端逼近

  • 使用类别管理的前端资源(脚本和样式)。
  • 每种模板的静态类别。
  • 标准组件:
代码语言:javascript
运行
复制
- Server side rendering based on JSPs, now Sightly (HTL)
- Modular JS (Feature or page based) - Vanilla JS and jQuery
- No Frontend MV\* Architecture, no frameworks

  • 动态组件或SPA:
代码语言:javascript
运行
复制
- Hybrid rendering: Sightly (HTL) + Handlebars templates + AJAX
- Custom MVC based on Vanilla JS + Handlebars (One way)
- No frameworks

下一个项目的我们正在开发一个新的前端框架

  • 基于FE组件的体系结构:
代码语言:javascript
运行
复制
- Clientlibs and designs will be handled with categories. 
- Managed Dynamically based on page components
- Each AEM Component will be mapped to one or several UI Components
- Styles: Theme + component styles
- FE logic: Services + component controllers 

  • components标准
代码语言:javascript
运行
复制
- Server side rendering based on Sightly (HTL)
- Component based JS -  Vanilla JS or or Angular 1.x (Component directive approach) or Angular 2

  • components复合
代码语言:javascript
运行
复制
- Server side rendering based on Sightly (HTL)
- Component based JS -   Angular 1.x (Component directive approach) or Angular 2
- Encapsulation  with Polymer (Optional)

  • components动态
代码语言:javascript
运行
复制
- Hybrid rendering: Sightly (HTL) + Polymer Web Components / Angular 2
- Two way data binding
- Encapsulation  with Polymer (Optional)
- OOTB Polymer Components for Google APIs

  • SPAs
代码语言:javascript
运行
复制
- Browser rendering: Angular 1.x (Component directive approach) or Angular 2
- Two way data binding  + Angular 1.x Routing or Angular 2 Routing
- Encapsulation  with Polymer (Optional)
- React.js + Flux is discarded

My关注点- Web:

  • 依赖于Node.js来捆绑(硫化)用于生产的组件(一点问题也没有)
  • HTML不适用于Author实例,无论是编辑还是预览。将检索html,但不会呈现组件。没有控制台错误。填充js被加载。由于组件未注册,其子组件(polymer.html,poly-micro.html.)没有加载。
  • 让我们定义一个带有文本和图像的Web 横幅组件
    • /./组件/横幅-Provider.html (Web组件提供程序)

    <!-- Import element --> <link rel="import" href="../web-components/banner.html"> <!-- Use element --> <banner title="${properties.title}" src="${properties.src}"></banner>

  • /./Web-组件/横幅-Provider.html (Web组件定义)

<dom-module id="banner"> <style>...</style> <template> .... </template> <script> Polymer({ is: 'banner', properties: { title: String, src: String } }); </script> </dom-module> web组件可以在其他系统中托管,可以通过Node.js或AEM与聚合物CLI (硫化等工具)协同工作。 我的担忧- AEM:

  • 缓存和调度器& SEO ->延迟加载组件
  • 移至HTTP/2

My concerns角2:

  • 依赖于Node.js来处理类型记录和绑定组件
  • 它似乎是一个web应用程序框架,而不是一个标准的前端框架。
  • 成熟..。准备好投入生产了吗?
  • 我们想要处理cms的前端,我们不想处理web应用程序。

.....你觉得呢?你是如何在AEM管理你的水疗中心的?您推荐另一个框架或库吗?. 我非常感谢你的建议。这些用例可扩展到IBM的Liferay . 提前谢谢你

EN

回答 2

Stack Overflow用户

发布于 2016-10-16 18:52:49

您提供的代码段至少有两个问题:

  1. 组件名称必须在每个x-banner中连字符(例如,x-banner而不是banner)。
  2. 数据绑定语法[[property]]{{property}} (而不是${propery})。

如果您想进一步解决这个问题,请提供一个可复制示例

关于架构问题,我认为它们可能超出了堆栈溢出的范围。不过,我会给你两分钱:

  • 考虑到Angular1和Angular2之间的选择,选择Angular2,因为它比它的前身和适用于聚合物具有更好的工具和性能(以及其他改进)。
  • 如果你刚从棱角和聚合物开始,那么一次学习一项技术可能是个好主意(从聚合物开始,因为它更简单)。
票数 0
EN

Stack Overflow用户

发布于 2017-01-06 15:43:50

我已经让聚合物在AEM6.x作者环境下工作,但我仍然在尝试一种可能的组件架构(尽管我有一些想法和观点)。

如果您仍然面临前面提到的HTML导入问题,那么您可能会遇到与我相同的问题。在我的游乐场项目中,我添加了作为二进制数据(nt:文件节点)的web组件,但是当服务器请求它们时,AEM的Sling引擎将自动添加一个'Content-Disposition: attachement'报头。在我的设置中,是这个标题阻止了从工作中的进口。

您可以通过配置控制台(/system/ console /configMgr)配置“悬挂式内容配置筛选器”,并将web组件的路径作为例外添加。

当然,这很快就变得非常麻烦,所以我创建了一个过滤器,它足够智能,可以拦截请求到我的web组件的存储位置,并将自动删除标头。

我希望这能帮到你!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40070828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档