当前位置: 首页 > Web前端 > HTML

Reference-Component-BasedArchitecture

时间:2023-03-28 13:34:46 HTML

Reference-Component-BasedArchitecture我不知道angular也不知道react,但据我观察vue文档,我认为基于组件的架构提供了一些通用的方法来处理日常的编程任务。有许多基于组件架构的框架。除了AVR,还有老框架backbone.jsAngularJS和新框架crank。每个框架都实现了这套API/契约/协议,虽然实现方式不同。未来的框架也将提供这些方法。使用这些工具,面向经典需求的软件开发人员将使用基于组件架构的框架提供的典型API,并使用该框架提供的性能测试和优化方法来完成软件设计、软件实现、软件交付。这些软件还有很多基础功能,比如样式展示、按钮事件、局部视图等,这些功能也可以通过纯js??来实现。初始化根组件根视图组件加载/脚本加载成html页面模板相关/视图层页面基础模板(字符串字面量)模板渲染变量用于模板渲染(通过变量插值加载模板,可以在模板中定义也可以在外部定义template)页面自定义/页面组合templatefragmentpartial"templatesystem"模板系统页面自定义方法页面组合方法require页面组合方法yield页面控制dataassembly(variable,array,objectobject)rendertemplateaccordingtodata(partialview)Data和模板的关系向页面传递数据绑定数据和模板数据绑定(单向绑定双向绑定)基于组件的架构:elementelementelement元素在HTML中使用element是消费组件componentcomponentstate组件状态决定了元素可以通过更新组件状态来更改元素的内容。在下一个变化检测周期,组件可以根据新的组件状态完成渲染。基于组件的架构:随时间变化的数据模板将新数据加载到运行时,运行时检测新数据(轻微)到运行时。新的渲染结果,新的数据源,用户事件,DOM事件,比如按钮输入url事件,比如newurl,异步网络数据处理思路:GUI多线程和异步调度,多线程(可能在webcomponent中?)monitoring(监控DOM事件)约定(约定刷新时间)1ChangedetectioncycleChangedetectioncycle(简称)组件运行时序(interception拦截)Component-basedarchitecture:requirementsfortheframeworkwhatwillthecomponentbetranslatedinto(组件如何变成aDOMtree)Componenttreetree和DOMtreecomponents会翻译成12expensivetreeexpensivetreewhyisanexampleofperformancethreatexpensivetree12component-basedarchitecture:requirementsoftheframeworkproxytimingproblemsolutionframeworkprovidesaproxytiming问题解决(框架自己负责时序问题,软件编写只需要遵守framework)下一个变更检测周期是如何发起的如何获取上一个变更检测周期拦截系统中的旧数据(组件生命周期)基于组件的架构:对组件的要求/组件类型纯函数1(组件作为function)纯函数的优点(浪费内存但增加程序可预测性可测试性增加了组件状态的可预测性)回退(如果不允许纯函数怎么办)组件操作纯函数副作用(使用纯函数构建组件并更新组件)组件性能使用纯函数提高性能(使用纯函数构建组件并更新)组件)(强烈依赖组件刷新机制)指针方法提高性能(指针方法创建组件和修改组件对象)组件维护组件状态管理组件跨层共享数据(组件扩展作用域)12基于组件的架构:同步以及异步同步定时DOM事件,比如按钮,异步定时,异步操作,比如网络数据,异步操作,数据请求发起,新数据获取,数据格式,等待信息,如何显示(作为组件状态的一部分)异步操作和纯函数,纯函数sideeffect,newdatachangecomponentstateasync方法放在哪里基于组件的架构:数据流组件作用域内存数据组件作用域/类作用域内存数据操作方法expandscopenarrowscope硬盘数据localstoragedataassignmentandcontrolcontroller(layer))service(layer)智能组件数据展示dumbcomponentdatacontroller构造经验reducer12datascopeexperiencepasshandlerdownwithcontext1DOMpropertyfeaturetemplateflowcontrolprintvariableprintlisttracklistitem(item'skey)DOMeventfeatureeventeventlistener(addEventListener)事件触发后处理(eventhandler)JS语言特性应用:变量是变量,函数也是变量如果不可变对象要做s是不允许的)1参考1https://developer.mozilla.org...https://v2ex.com/t/294276?p=1...https://www.fullstacklabs.co/...https//ngxf.gitbook.io/platf。..参考template相关react俗语componentcomposition(require)subcomponentprops.children(yield)childelementpassaspropstemplaterelatedangular常用语句elementelementtagprojection(APIng-content)(yield)参考2https://ruby-china.github.io/...