加载中 ...
首页 > 新闻资讯 > 小程序 正文

微信小程序

2019-07-31 11:37:51 来源:沈阳小程序开发 作者:沈阳软件开发

的底层框架 前端框架过于耀眼,许多类似的地方,优秀的地方将被用作参考,同时会有一些特点。 小程序,其他框架,了解他们的设计原因,实现原则,或者可以学到很多东西。技术选择目前,页面渲染有三种主要方式:第一种是Web渲染。第二,原生本机渲染。第三,Web和Native都是掺杂的,这就是我们经常称之为混合渲染。正如我之前所说,小程序的最终渲染是WebView +本机组件,混合模式。我们结合先前对小程序的期望:开发的门槛:Web阈值很低,但Native也有像RN这样的框架支持。经验:本机体验并不比Web好多少。 Hybrid比Web更接近原生体验。更新:Web支持在线更新,Native需要打包到微信进行审计发布,控制和安全:Web可以跳转或更改页面内容,还有一些无法控制的因素和安全风险。由于小程序主机是微信,如果纯客户端写入小程序的本机技术,小程序代码需要用微信代码打包,其次是微信版本,这种方式和开发节奏一定是错误的。所以方向应该像Web技术一样,云中有一个随时可以更新的资源包,通过下载到本地,动态执行可以渲染界面。如果使用纯Web技术渲染小程序,则在某些具有复杂交互的页面上可能会遇到一些性能问题。这是因为在Web技术中,UI渲染和JavaScript脚本执行是在单个线程中执行的,这很容易导致一些逻辑任务占用UI渲染资源。 通常,小程序选择混合渲染方法,可以以类似于Web的方式开发,也可以在线更新代码。同时,本机组件的引入具有以下好处:第一,扩展Web的能力。例如,输入框(输入,textarea)具有更好的控制键盘的能力。其次,体验更好,也减少了WebView的渲染工作。 3.绕过setData,数据通信和重新渲染过程,渲染性能更好。我们还有一个非常重要的问题:控制和安全。因此,提出了双线程设计。双线程小程序,我不知道哪一个很大,我可以想到一个像双线程的模型。无论如何,我很佩服666.什么是双线程?让我们首先看一下官方图:小程序的渲染层和逻辑层由2个线程管理:渲染层接口使用WebView渲染,逻辑层使用JsCore线程运行JS脚本。你为什么这样设计?为了解决这些问题,我们需要阻止开发人员使用沈阳微信小程序

ad.jpg

一些浏览器提供开放接口,例如跳转页面,操纵DOM和动态执行脚本。我们可以使用客户端系统的JavaScript引擎,iOS下的JavaScriptCore框架,以及Android下的腾讯x5内核提供的JsCore环境。通过提供沙箱环境运行开发人员的JavaScript代码来解决。此沙箱环境仅提供纯JavaScript解释的执行环境,而不包含任何与浏览器相关的接口。这是小程序双线程模型的起源:逻辑层:创建一个单独的线程来执行JavaScript,在这个环境中是关于小程序业务逻辑的代码渲染层:界面渲染相关任务全部在WebView线程中执行,控制逻辑层代码呈现哪些接口。 小程序有多个接口,因此渲染层中有多个WebView线程。双线程通信将开发人员的JS逻辑代码放入一个单独的线程中运行,但在Webview线程中,开发人员无法直接操作DOM。你如何实现动态变化界面?如前所述,逻辑层和渲染层之间的通信由Native(微信客户端)中继,逻辑层发送网络请求,也通过Native转发。这是否意味着我们可以通过简单的数据通信实现DOM更新? Virtual DOM认为每个人都知道,可能是一个过程:使用JS对象模拟DOM树 - >比较两个虚拟DOM树之间的差异 - >将差异应用于真正的DOM树。在这里我们可以使用,如图所示:将WXML转换为渲染层中相应的JS对象。 当逻辑层发生数据更改时,数据通过主机环境提供的setData方法从逻辑层传递到Native,然后转发到渲染层。在比较之前和之后的差异之后,将差异应用于原始DOM树并更新界面。我们通过将WXML转换为数据并通过Native转发它来实现逻辑层和渲染层之间的交互和通信。而这么一套完整的框架,基本上都是通过小程序基础库来完成的。 小程序的基础库小程序的基础库是用JavaScript编写的,可以将其注入渲染层和运行的逻辑层。主要用于渲染层,提供各种组件以形成逻辑层中的接口元素,提供各种API来处理各种逻辑处理数据绑定,组件系统,事件系统,通信系统等。由于小程序而产生的一系列框架逻辑渲染层和逻辑层由两个线程管理,每个线程注入底层库。 小程序的基本库不会打包在小程序代码包中,它将提前内置在微信客户端中。这可以减少服务小程序的代码大小,单独修复基本库中的错误,而不需要将代码包修改为服务小程序。 Exparser Framework Exparser是微信小程序的组件组织框架,内置于小程序基本库中,为小程序的各个组件提供基本支持。 小程序中的所有组件(包括内置组件和自定义组件)均由Exparser组织管理。更广泛的功能包括:Shadow DOM模型:该模型与WebComponents的ShadowDOM非常相似,但不依赖于浏览器本机支持而没有其他依赖项;实现时,添加其他API以支持小程序组件编程。 它可以在纯JS环境中运行:这意味着逻辑层还具有一些组件树组织功能。高效轻量级:性能良好,特别是在许多组件实例的环境中,代码大小也很小。本节可能会讨论小程序设计中更重要的模型。——双线程,关于双线程,设计,数据通信,基础库,Exparser框架的出现,都是相关和有影响力的选择。关于小程序的底层框架设计,实际上,它涉及越来越多我们暂时无法掌握的内容,自定义组件,本机组件,并且他们已经做了很多性能优化工作,而不仅仅是单词可以完成。我们能做的就是多思考。

“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与

我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。