当前位置: 首页 > news >正文

网站建设的可行性报告wordpress培训模板下载

网站建设的可行性报告,wordpress培训模板下载,wordpress route,ui设计师证书有用吗一 Widget Element RenderObject 之间的关系 1 Widget 在Flutter 中#xff0c;万物皆是Widget,无论是可见的还是功能型的。一切都是Widget. 官方文档中说的Widget 使用配置和状态来描述View 界面应该长什么样子。 它不仅可以表示UI元素#xff0c;也可以表示一些功能性的…一  Widget Element RenderObject 之间的关系 1   Widget 在Flutter 中万物皆是Widget,无论是可见的还是功能型的。一切都是Widget. 官方文档中说的Widget 使用配置和状态来描述View 界面应该长什么样子。 它不仅可以表示UI元素也可以表示一些功能性的组件如用于手势检测的 GestureDetector、用于APP主题数据传递的Theme、布局元素等等 两个重要的方法 一个是通过 createElement 来创建 Element 对象的 一个是根据 key 来决定更新行为的 canUpdate 方法。 在这个方法中会对比runtimeType 也就是widget 的类型和 key 是否相同 immutable abstract class Widget extends DiagnosticableTree {/// Initializes [key] for subclasses.const Widget({this.key});final Key? key;protectedfactoryElement createElement();/// A short, textual description of this widget.overrideString toStringShort() {final String type objectRuntimeType(this, Widget);return key null ? type : $type-$key;}overridevoid debugFillProperties(DiagnosticPropertiesBuilder properties) {super.debugFillProperties(properties);properties.defaultDiagnosticsTreeStyle DiagnosticsTreeStyle.dense;}overridenonVirtualbool operator (Object other) super other;overridenonVirtualint get hashCode super.hashCode;static bool canUpdate(Widget oldWidget, Widget newWidget) {return oldWidget.runtimeType newWidget.runtimeType oldWidget.key newWidget.key;}// Return a numeric encoding of the specific Widget concrete subtype.// This is used in Element.updateChild to determine if a hot reload modified the// superclass of a mounted elements configuration. The encoding of each Widget// must match the corresponding Element encoding in Element._debugConcreteSubtype.static int _debugConcreteSubtype(Widget widget) {return widget is StatefulWidget? 1: widget is StatelessWidget? 2: 0;} } 2   Element Element 就是一个Widget 的实例在树中详细的位置。 An instantiation of a Widget at a particular location in the tree 3 RenderObject 渲染树上的一个对象。负责具体布局和绘制这些事情。 4 结合图说一下其三者的关系 从创建到渲染的流程 根据Widget 生成Element,然后创建响应的RenderObject并且关联到Element.renderObject 属性。最后再通过RenderObject 来完成布局和绘制。 依赖关系 Element 树根据Widget 树生成而渲染树又依赖于widget 树。 5 一些小问题 5.1  widget 和 element 是一一对应的吗 为什么 答:是一一对应的。 因为 abstract class Widget 本身是一个抽象类这个抽象类中有一个抽象方法叫做createElement子类必须实现这个抽象方法所以是一一对应的。 5.2 widget 和 renderObject 是一一对应的吗 为什么 答不是的 因为只有这个widget 继承自RenderObjectWidget 的时候才会有对应的renderObject 像类似 Padding , Row,SizedBox,Center 这种组件继承自RenderObjectWidget的组件会有一一对应的关系 //class Padding extends SingleChildRenderObjectWidget// Padding();// class Flex extends MultiChildRenderObjectWidget// Row() 5.3 BuildContext 是什么 答是Element不管是StatefulWidget 还是StatelessWidget 都会重写父类的build 方法 build 方法传入的一个参数叫做BuildContext, 我们拿StatelessWidget来说其本身创建一个StatelessElement,而在这个Element内部重写StatelessElement父类的build方法而在这个build方法内部会调用_widget.build 方法并且把this传递进去。那么这个this 就是element 。 /// An [Element] that uses a [StatelessWidget] as its configuration. class StatelessElement extends ComponentElement {/// Creates an element that uses the given widget as its configuration.StatelessElement(StatelessWidget super.widget);overrideWidget build() (widget as StatelessWidget).build(this);overridevoid update(StatelessWidget newWidget) {super.update(newWidget);assert(widget newWidget);_dirty true;rebuild();} }5.4 Widget 频繁更改创建是否会影响性能复用和更新机制是什么样的 不会影响性能因为只是一些配置信息没有有布局渲染到页面上去。中间层Element 会通过widget 的runtimeType 和 Key 来对比是否进行更新操作。 5.5 Build 方法会在什么时候调用 Element 创建完毕之后会调用mount 方法对于非渲染的ComponentElement 来说mount主要执行的是Widget 中的build 方法。在StatelessElement 中直接使用的是 widget.build(this), 而在StatefullWidget 方法中通过的是state.build(this)。在StatefulElement 这个类中 初始化列表的给state 进行了赋值操作。通过widget调用createState方法之后把state赋值给自己的_state 属性。 StatefulElement(StatefulWidget widget) : _state widget.createState(), 5.6 createState 方法什么时候调用 答创建Element 的时候。 Flutter 会在遍历 Widget 树时调用 Widget 里面的 createElement 方法去生成对应节点的 Element 对象同时执行 StatefulWidget 里面的 createState 方法创建 state并且赋值给 Element 里的 _state 属性当前 widget 也同时赋值给了 state 里的_widgetstate 里面有个 widget 的get 方法可以获取到 _widget 对象。
http://www.eeditor.cn/news/122579/

相关文章:

  • 牛人网站建设wordpress关于页面模板
  • 网络营销主要干什么引擎seo优
  • 建设网站需要体现的流程有哪些内容网站模板图片
  • 深圳网站建设服务html5自建网站
  • wordpress 做图片站wordpress fifth
  • 管理软件网站模板网络经营许可证查询
  • 开发中英文切换网站如何做国外ps教程网站
  • ico 众筹网站开发怎么学好网站建设
  • 哪类公司做网站的最多网站开发主流方法
  • 卖主机网站祁连网站建设公司
  • 功能型网站制作多少钱织梦商业网站内容管理系统
  • 如何在微信公众平台上建立微网站做前端常用的网站及软件
  • 贵阳优化网站建设网站如何做等级保护
  • 做ppt模板下载网站短视频策划模板
  • 知名网站开发哪里有制作自己专属头像
  • 企业网站建设晋升阿里云网站建设教程视频
  • 网站内容管理wordpress双栏主题
  • 开发网站五个阶段wordpress按颜色搜索
  • 创建个人网站怎么做六安政务中心网站
  • 做流量网站西安专业得网站建设公司
  • 自做网站需要多少钱免费的网站模板有哪些
  • 搭建网站案例精粹做网站的文案
  • 为什么不用h5做网站企业信息系统应用
  • 网站优化大赛厦门正规的网站建设公司
  • 怎么看网站关键词排名搬瓦工快照恢复wordpress
  • 请专业做网站的老师西安定制网站
  • 淄博网站公司福建seo快速排名优化
  • 广西钦州网站建设昆明免费网站建设
  • 开发语言有哪几种免费网站建设优化
  • 青岛做外贸网站的公司简介洛可可设计公司贾伟