iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >微信小程序底层的实现原理分析
  • 832
分享到

微信小程序底层的实现原理分析

2023-06-26 09:06:46 832人浏览 八月长安
摘要

这篇文章主要为大家展示了“微信小程序底层的实现原理分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序底层的实现原理分析”这篇文章吧。从map组件说起在今天公布的开发文档里,我们知道使用

这篇文章主要为大家展示了“微信小程序底层的实现原理分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序底层的实现原理分析”这篇文章吧。

从map组件说起

在今天公布的开发文档里,我们知道使用一个地图组件的时候是这样子的:

<map longitude="23.099994" latitude="113.324520" markers="{{markers}}" covers="{{covers}}" style="width: 375px; height: 200px;"></map>

在之前的文件里,我们提到过这个文件是wxml文件,然后我们要用wxcc将其转换为virtual dom中的方法,如:

./wcc -d map.xml

它就会返回一个js的方法,如:

var $gwxcvar $gaic={}$gwx=function(path,global){function _(a,b){b&&a.children.push(b);}function _n(tag){$gwxc++;if($gwxc>=16000){throw 'enough, dom limit exceeded, you don\'t do stupid things, do you?'};return {tag:tag.substr(0,3)=='wx-'?tag:'wx-'+tag,attr:{},children:[]}}function _s(scope,env,key){return typeof(scope[key])!='undefined'?scope[key]:env[key]}...

插播一句:上面有一个count,很有意思$gwxc > 16000,这个就是dom数的count。超了就来个异常:enough, dom limit exceeded, you don't do stupid things, do you?,中文意思就是:你个愚蠢的人类,你是一个前端开发人员吗?

随后,在浏览器里调试一下:

JSON.stringify($gwx('map.wxml')('test'))

在小程序中是要这样调用的:

        document.dispatchEvent(new CustomEvent("generateFuncReady", {            detail: {                generateFunc: $gwx('map.wxml')            }        }))

就会返回下面的结果:

{    "children": [        {            "attr": {                "covers": "",                "latitude": "113.324520",                "longitude": "23.099994",                "markers": "",                "style": "width: 375px; height: 200px;"            },            "children": [],            "tag": "wx-map"        }    ],    "tag": "wx-page"}

看来这个名为wx-map的标签就是微信下的map标签,它是wx-page的children。然后让我们在WAWEBview中搜索一下,就会发现一个很有意思的代码:

{    is: "wx-map",    behaviors: ["wx-base", "wx-native"],    template: '<div id="map" style="width: 100%; height: 100%;"></div>',    properties: {        latitude: {type: Number, reflectToAttribute: !0, observer: "latitudeChanged", value: 39.92},        longitude: {type: Number, reflectToAttribute: !0, observer: "longitudeChanged", value: 116.46},        scale: {type: Number, reflectToAttribute: !0, observer: "scaleChanged", scale: 16},        markers: {type: Array, value: [], reflectToAttribute: !1, observer: "markersChanged"},        covers: {type: Array, value: [], reflectToAttribute: !1, observer: "coversChanged"},        _mapid: {type: Number}  }

它的behaviors中有一句:wx-native,这莫非就是传说中的native组件

以上是“微信小程序底层的实现原理分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: 微信小程序底层的实现原理分析

本文链接: https://www.lsjlt.com/news/308759.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 微信小程序底层的实现原理分析
    这篇文章主要为大家展示了“微信小程序底层的实现原理分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序底层的实现原理分析”这篇文章吧。从map组件说起在今天公布的开发文档里,我们知道使用...
    99+
    2023-06-26
  • 微信小程序底层实现原理的示例分析
    这篇文章给大家分享的是有关微信小程序底层实现原理的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  根据小程序开发文档-框架(https://mp.weixin.qq.com/debug/wxadoc/d...
    99+
    2023-06-26
  • Java LinkedHashMap 底层实现原理分析
    目录添加元素 删除元素 更新元素查找元素 其他方法 迭代器总结 在实现上,LinkedHashMap很多方法直接继承自HashMap,仅为维护双向链表覆写了部分方法。所以,要看懂 L...
    99+
    2024-04-02
  • 微信小程序实现触底加载
    现在来看小程序还没有使用pc端的那种分页格式,现在微信小程序上分页一般使用触底加载来实现分页的,下面就来分享一个触底加载的实现方式。 1.首先要从后端也就是服务器上获取分页的数据,如...
    99+
    2024-04-02
  • 微信小程序实现底部弹窗
    本文实例为大家分享了微信小程序实现底部弹窗的具体代码,供大家参考,具体内容如下              &nb...
    99+
    2024-04-02
  • Spring Boot底层原理实例分析
    这篇“Spring Boot底层原理实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spring ...
    99+
    2023-06-29
  • 微信小程序怎么实现触底加载
    这篇文章主要介绍“微信小程序怎么实现触底加载”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序怎么实现触底加载”文章能帮助大家解决问题。首先要从后端也就是服务器上获取分页的数据,如:每页多少条...
    99+
    2023-07-02
  • 微信小程序实现卡片层叠滑动
    本文实例为大家分享了微信小程序实现卡片层叠滑动的具体代码,供大家参考,具体内容如下 实现效果: 1.左右滑动时,向相应方向移动一个卡片位置;2.点击某一项时,将点击项位置移动到中间...
    99+
    2024-04-02
  • 微信小程序开发实例分析
    这篇文章主要介绍“微信小程序开发实例分析”,在日常操作中,相信很多人在微信小程序开发实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”微信小程序开发实例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-26
  • 微信小程序的示例分析
    这篇文章主要介绍微信小程序的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!未来的发展趋势未来的发展趋势是一切触手可及。比如去餐馆吃饭,扫一扫二维码就可以看菜单、点菜、付款;到公交站台,扫一扫二维码就知道有哪些...
    99+
    2023-06-26
  • Javasynchronized底层的实现原理
    目录监视器底层实现执行流程总结前言: 想了解 synchronized 是如何运行的?就要先搞清楚 synchronized 是如何实现? synchronized 同步锁是通过 J...
    99+
    2024-04-02
  • HashMap的底层实现原理
    这篇文章主要介绍“HashMap的底层实现原理”,在日常操作中,相信很多人在HashMap的底层实现原理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HashMap的底层实现原理”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-04
  • 微信小程序如何实现tabBar底部导航
    这篇文章主要介绍微信小程序如何实现tabBar底部导航,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!微信小程序tabBar底部导航中文注解api,信小程序tabBar就是app底部的...
    99+
    2024-04-02
  • Java中SynchronousQueue的底层实现原理剖析
    目录1. SynchronousQueue用法2. SynchronousQueue应用场景3. SynchronousQueue源码解析3.1 SynchronousQueue类属...
    99+
    2022-11-21
    Java SynchronousQueue实现 Java SynchronousQueue原理 Java SynchronousQueue
  • 微信小程序中如何实现吸底按钮
    这篇文章主要为大家展示了“微信小程序中如何实现吸底按钮”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序中如何实现吸底按钮”这篇文章吧。随着第二三批iPh...
    99+
    2024-04-02
  • 微信小程序实现底部弹出框封装
    本文实例为大家分享了微信小程序底部弹出框封装的具体代码,供大家参考,具体内容如下 <!--index.wxml--> <view>   <butto...
    99+
    2024-04-02
  • 微信小程序运行流程实例分析
    本文小编为大家详细介绍“微信小程序运行流程实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序运行流程实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一.微信小程序是啥本质其实就是(混合)的a...
    99+
    2023-06-26
  • 微信小程序实现双层嵌套菜单栏
    最近在做的项目有这样一个需求,也不太好描述,就是有两个顶部菜单栏,每个二级菜单栏的item都有自己页面,每个页面都可以通过左右滑动来切换,第一个想到的实现方法就是双层swiper嵌套...
    99+
    2024-04-02
  • 微信小程序中实现计算器的案例分析
    这篇文章将为大家详细讲解有关微信小程序中实现计算器的案例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下项目展示页面设计分为上面输入的显示部分和下面按键部分<!--pages/inde...
    99+
    2023-06-20
  • 微信小程序实现星级评分
    本文实例为大家分享了微信小程序实现星级评分的具体代码,供大家参考,具体内容如下 第一种方法: WXML代码: <view> 星级评分 </view&g...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作