【青训营】-🎨小程序开发入门

简介: 【青训营】-🎨小程序开发入门

前言


为什么会有小程序?


我们从产品的角度上来讲,小程序最初是在微信中先出现的,那么为什么是在微信中先出现呢,而不是在其他APP中呢,因为微信它是一个超级APP,小程序是这种超级APP发展到一定阶段的必然产物,它是关于未来商业布局与生态相关的产品,它的本质呢,其实是一种载体。它与我们在应用商店下载的APP没有太大区别,无非就是相对封闭一些,而且它是依托于APP的,不能脱离于APP而存在,我们把小程序加载在APP中,能和APP混合起来,产生不一样的价值。小程序是基于某个超级APP的综合生态,可以把公交,地铁,蚂蚁森林,挂号,外卖等一些列功能都覆盖进来,这些小程序的APP成为了对用户更有价值的平台,毕竟谁还不每天起床偷个能量~😄


一、小程序与WEB区别


小程序分类


  • 以设计流量为载体(微信)
  • 以信息传播流量为载体(今日头条)
  • 以交易属性为载体(支付宝)

小程序特点


  1. 触手可及,用完即走


d505fc1c7b8b49418da2dd83fe2ca9d4_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


小程序是一种无需下载安装即可使用的应用,能以最低成本触达用户,极大程度上降低了使用门槛。


  1. 流量互导,功能补充


104287f48fdb427bb9d0cf89134810b7_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

小程序依托各平台生态,有线下扫码,分享,搜索等各种入口。帮助各平台做功能上的补充,同时也为平台带来更多流量。


  1. 提升体验,媲美原生


55714a0ef3fb4c66919300a5d6a9fb35_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

小程序采用逻辑和渲染分离的模式,同时部分组件使用native进行渲染,并通过资源管理等方式,帮助小程序加载更快,使用起来更加流畅。


小程序与WEB在技术上的区别


  1. 小程序部分组件直接通过原生实现camera、canvas、video、map和textarea等
  2. 小程序会在端上做资源的缓存、销毁等,控制小程序的周期,让小程序能够更快速的加载
  3. 小程序在架构上将逻辑和渲染进行分离,而WEB是在同一进程中


小程序与WEB在生态上的区别


  1. 小程序各方面限制更加严格,将渲染和逻辑分开,这样做的直接后果就是之前很多在WEB中的东西不能直接用了,必须在平台给定的规则进行开发方便了平台进行管控。
  2. 各端提供官方入口,包括扫码,我的小程序,文章内嵌等等,并可快速分享。
  3. 发布被各平台管控,有着统一的应用版本管理


小程序架构(硬核内容)


在讲解小程序架构之前,我们先来了解一下小程序开发的心路历程。

最早微信提供jssdkjssdk就是通过JS来开放微信端上的能力,来给web页面使用,通过引入jssdk来实现一些功能,jssdk虽然提升了能力,但是体验上并没有提升,比如我们在微信中打开一个网页,它其实还是在微信的浏览器内核中打开的,和在浏览器打开没有什么太大的差别,比如出现白屏,切换的时候没有那么流畅,更重要的是安全问题,为了解决上述这些问题,就出现了新的开发方案。,一开始微信考虑的是react-native这种方案,不用Swift或者Java开发了,但是最终抛弃了react-native这种方案,因为react-native本身有许多bug,而且react-native几乎没有维护,react-natice对CSS的支持不足,react-native存在协议隐患等一些问题

同时我们还要解决更新页面不能操作DOM的问题,因为DOM被操作了就无法被管控,我们最后采用虚拟DOM的方案,最终就有了如下的架构:


52cc9897d8434545bf042f7a517774d7_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


在小程序中,每个页面都是一个独立的进程,就类似于浏览器中的tab,每个页面都是独立的,这样做的好处就是切换页面的时候不需要重新加载资源,这样能做到体验上的最优。


二、小程序的发展历程


ebf4219b9f4343e09598689a8821856a_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png6b46882c3dd04ef9b53fa510103e5d4e_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


三、小程序开发方案


3.1 开发者工具


不论哪个小程序,我们都需要相应的平台去注册我们的开发者账号,我们开发小程序是需要用到平台提供的一个开发者工具。

73c343afa5594d9f987c88dd9c2908a2_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


3.2 小程序语法介绍——数据绑定


渲染层

<view>{{message}}</view>
复制代码

逻辑层

Page({
    data:{
        message: 'Hello World!'
    }
})
复制代码


3.3 小程序语法介绍——列表渲染


渲染层

<view tt:for="{{array}} tt:for-index="index" tt:for-item="item">
{{index}}:{{item.message}}
</view>
复制代码

逻辑层

Page({
    data:{
        array: [{
            message: 'foo',
        },{
            message: 'bar'
        }]
    }
})
复制代码


3.4 小程序语法介绍——条件渲染


<view tt:if="{{length > 5}}">1</view>
<view tt:elif="{{length > 2}}">2</view>
<view tt:else>3</view>
复制代码


3.5 小程序语法介绍——Page对象


Page({
    data:{
        a: [],
        b: 2
    },
    onAdd(){
    // this.data.b = this.data.b + 1 不会引起视图更新
    this.setData({
        b: this.data.b + 1
    })
    }
})
复制代码


3.6 其他开发方案


如何提升开发效率呢?有没有像使用Vue,React那种框架来开发小程序呢?答案是有的~

我们这里就以Taro为例,Taro是一个开放式跨端框架解决方案,它能够支持我们使用Vue,React来开发小程序,它是帮我们做了转换。


写法对比


804066643c944aaea1c0dd9643fb62f2_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


四、Taro原理简单解析


如果让大家实现自己实现,大家会如何实现用React/Vue来写小程序,可以简单思考下。


Taro编译时方案——AST抽象语法树


AST具体可靠参考:astexplorer.net


3965988f8cb84fb3873dc4d2c4b3d4ef_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

686085f9309c4854856b6b8c47a620ac_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


这种编译时方案的缺点就是无法完全抹平差异,有书写限制。


Taro运行时方案——虚拟DOM Template组件


50a871e767bd42f0b82c75fc5ae8aa8d_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

98c8e941ddb5425fbb38beac3fa1fc46_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


这种运行时方案的缺点就是一些情况下运行性能较差


最后


⚽这篇文章带大家了解了小程序的历程以及小程序的开发方案等~

⚾如果你对这篇文章感兴趣欢迎点赞关注+收藏,更多精彩知识正在等你!😘

相关文章
|
11天前
|
人工智能 小程序
【一步步开发AI运动小程序】十五、AI运动识别中,如何判断人体站位的远近?
【云智AI运动识别小程序插件】提供人体、运动及姿态检测的AI能力,无需后台支持,具有快速、体验好、易集成等特点。本文介绍如何利用插件判断人体与摄像头的远近,确保人体图像在帧内的比例适中,以优化识别效果。通过`whole`检测规则,分别实现人体过近和过远的判断,并给出相应示例代码。
|
5天前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十七、如何识别用户上传视频中的人体、运动、动作、姿态?
【云智AI运动识别小程序插件】提供人体、运动、姿态检测的AI能力,支持本地原生识别,无需后台服务,具有速度快、体验好、易集成等优点。本文介绍如何使用该插件实现用户上传视频的运动识别,包括视频解码抽帧和人体识别的实现方法。
|
10天前
|
人工智能 小程序 UED
【一步步开发AI运动小程序】十六、AI运动识别中,如何判断人体站位?
【云智AI运动识别小程序插件】提供人体、运动及姿态检测的AI能力,本地引擎无需后台支持,具备快速、体验好、易集成等优势。本文介绍如何利用插件的`camera-view`功能,通过检测人体站位视角(前、后、左、右),确保运动时的最佳识别率和用户体验。代码示例展示了如何实现视角检查,确保用户正或背对摄像头,为后续运动检测打下基础。
|
16天前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十三、自定义一个运动分析器,实现计时计数02
本文介绍如何利用“云智AI运动识别小程序插件”开发AI运动小程序,详细解析了俯卧撑动作的检测规则构建与执行流程,涵盖卧撑和撑卧两个姿态的识别规则,以及如何通过继承`sports.SportBase`类实现运动分析器,适用于小程序开发者。
|
10天前
|
移动开发 小程序 PHP
校园圈子论坛系统采取的PHP语音和uni账号开发的小程序APP公众号H5是否只需要4800元?是的,就是只需要4800元
关于校园圈子论坛系统采用PHP语言和uni-app开发的小程序、APP、公众号和H5是否仅需4800元这个问题,实际上很难给出一个确定的答案。这个价格可能受到多种因素的影响
40 8
|
6天前
|
人工智能 小程序 数据处理
uni-app开发AI康复锻炼小程序,帮助肢体受伤患者康复!
近期,多家康复机构咨询AI运动识别插件是否适用于肢力运动受限患者的康复锻炼。本文介绍该插件在康复锻炼中的应用场景,包括康复运动指导、运动记录、恢复程度记录及过程监测。插件集成了人体检测、姿态识别等功能,支持微信小程序平台,使用便捷,安全可靠,帮助康复治疗更加高效精准。
|
12天前
|
人工智能 小程序 JavaScript
【一步步开发AI运动小程序】十四、主包超出2M大小限制,如何将插件分包发布?
本文介绍了如何从零开始开发一个AI运动小程序,重点讲解了通过分包技术解决程序包超过2M限制的问题。详细步骤包括在uni-app中创建分包、配置`manifest.json`和`pages.json`文件,并提供了分包前后代码大小对比,帮助开发者高效实现AI运动功能。
|
1月前
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
34 0
在线课堂+工具组件小程序uniapp移动端源码
|
2月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
340 3
|
2月前
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
57 0
微信小程序更新提醒uniapp
下一篇
DataWorks