离子框架与 Famo.us

Ionic framework vs Famo.us

Ionic 框架与 Famo.us 框架有什么区别。可以在一个项目中同时使用这两个框架。哪一个支持在移动设备上平滑渲染图形?

两种框架都支持AngularJs?

这两个框架都适用于 AngularJS,但它们来自不同的方向并且有不同的目标。

离子

建立在 AngularJS 之上并对其进行扩展,为您提供按钮、网格和其他现成的 UI 元素,以帮助您真正快速地发布您的移动应用程序。 AngularJS 专注于应用程序的数据绑定和 MVC 结构,并不真正关心它是 运行 在桌面浏览器中还是在移动设备上。 Ionic 专注于您的应用程序数据的呈现,并扩展了 AngularJS 以使其适合在移动设备上使用,并为您提供移动用户所期望的设计模式。由于 Ionic 位于 AngularJS 之上,因此没有 Angular.

就无法真正拥有 Ionic

Check out Ionic's components 以获得更好的理解。

Famo.us

另一方面力求最快的渲染性能。碰巧您可以将常规 HTML 放入 Famo.us Surface — 这是包含要显示的内容的容器。该内容可以是 HTML,但不是必须的。

Famo.us 本身不使用标准 HTML 回流在视口中定位其表面,而是使用它自己的渲染树实现,因此您可以自由操纵表面位置和旋转,即使在 3D space 中,也具有黄油般流畅的性能。另一方面,放在表面内部的 HTML 使用回流来定位其元素,就像您习惯的那样。 Read more about the render tree.

Famo.us 可以输出到 HTML,但也可以使用 WebGL 甚至混合模式进行渲染,将 DOM 与 WebGL 相结合。这允许使用普通 CSS 不太可能的 fancy graphic effects。还与 Easing 和 Physics 紧密集成,以实现有趣而逼真的动画。

现在有了 Famo.us/Angular,我不明白为什么你不能在同一个应用程序中使用 Ionic 和 Famo.us,虽然我还没有尝试过。

总结

Ionic 坚持使用常规 DOM 进行渲染,并专注于移动设计/用户体验模式。 Famo.us 忽略 DOM 并允许您(阅读:要求您)构建/填充渲染树,提供物理并允许更复杂和流畅的动画。这也意味着使用 Famo.us 需要一个学习曲线。好处是:您不必去 'all in',因为您可以使用 Famo.us 构建您的应用程序的某些视图,然后对其他所有内容使用常规 HTML/CSS。

在同一个 index.html SPA 中加载 famous 时,ionic 列表运行良好。

当 ionic 和 famo.us 共享同一页面时,angular-google-maps 中的触摸平移等功能将停止工作。 使用 ion-nav-bar 从离子选项卡状态到详细视图的过渡动画效果也很差。

因此,我建议您根据需要将您的应用从 famous.html 切换到 ionic.html,从而将内容分开。每个实现都有自己的依赖堆栈和自己的独立样式,因为它们出现在示例应用程序中。

您可以使用 document.location.href

进行转换

我认为您可以通过在 url 中设置适当的状态找到一种从一个世界过渡到另一个世界的特定状态的方法。