gpt4 book ai didi

android - Flutter 中的 Widget 是什么?

转载 作者:IT王子 更新时间:2023-10-29 06:47:44 25 4
gpt4 key购买 nike

Flutter 教程到处都使用“Widget”这个词。在这种情况下,小部件是什么?我能在 SO 上找到的最接近的问题在这里:What is a widget in Android?

但它是关于 Android 而不是 Flutter(它同时为 Android 和 iOS 构建,因此在两种上下文中定义了 widget)并且答案有点令人困惑。一个人说 Widget 就像一个按钮(所以我想到了一些 Ui-Package/framework 的 Ui-Component),另一个人说它就像一个应用程序,因为它可以在任何地方运行并占据整个屏幕。那么来自 WebDevelopment,我可以假设 Widget 类似于 WebComponent 吗?

它是一段不依赖于其他组件但需要在环境中自举的自包含代码?这个假设是真的吗?适用于 Android 和 iOS?

最佳答案

小部件不等同于 WebComponents。它们也不是 UI 元素。

小部件是用于描述应用程序任何部分的高级对象。可以是但不限于按钮等UI元素;布局(对齐,填充,...);数据(主题、配置)...

小部件可以是一切。在 Flutter 中,几乎所有你要编写的代码都将在 Widget 中。甚至像“redux reducers”这样的东西也是 flutter 中的小部件。

从某种意义上说,小部件与 React 组件极为相似。

最后将小部件视为描述您的应用程序的东西。


但是什么小部件不是呢?

小部件不进行任何计算。他们将该计算委托(delegate)给其他对象。

例如,小部件不能在屏幕上呈现某些内容。相反,它使用内部方法 createRenderObject 将其委托(delegate)给 RenderObject

仅供引用,在网络世界中,RenderObject 通常是 DOM 元素或您的网络组件(因为它们是自定义 DOM 元素)。


既然他们把一切都委托(delegate)给了其他对象,我真的需要他们吗?

不需要它们。但你应该他们。您可以直接使用 RenderObject 创建一个 flutter 应用程序。您的应用很可能会更快。

但是小部件的设计方式使您的应用程序更具表现力、模块化和可维护性。

小部件通常会在其他对象之上引入响应式/函数式编程模式。结合更好的 API 来使用这些较低级别的对象。

关于android - Flutter 中的 Widget 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50958238/

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