微信小程序入门教程之一:初次上手

小程序已经成为国内前端的一个重要业务,跟Web和手机App有着同等的重要性。小程序开发者供不应求,市场招聘需求极其旺盛,企业都抢着要。

尽管如此,小程序的教程却很缺,要么是不够系统,要么就是跳跃性太大,很多关键的地方寥寥数语,初学者摸不着头脑。我自己学的时候,就苦于找不到好一点的教程。

本文就是我的小程序学习笔记,整理成教程的形式,希望对于初学者有用。需要学会的主要知识点,我都会讲到,我的目标是你读完这个教程,就能学会怎么写小程序。

考虑到很多同学并没有开发经验,小程序是他们接触的第一个开发领域。我会讲得比较细,希望新人也能没有困难地阅读这个教程。由于内容比较多,这个教程将分成四次连载。

学习小程序之前,先简单说一下,它到底是什么。

由于小程序基于网页技术,所以学习之前,最好懂一点网页开发。具体来说,下面两方面的知识是必需的。

(1)JavaScript语言:懂基本语法,会写简单的JS脚本程序。

(2)CSS样式:理解如何使用CSS控制网页元素的外观。

此外,虽然HTML标签和浏览器API不是必备知识,但是了解浏览器怎么渲染网页,对于理解小程序模型有很大的帮助。

总的来说,先学网页开发,再学小程序,是比较合理的学习途径,而且网页开发的资料比较多,遇到问题容易查到解决方法。但是,网页开发要学的东西太多,不是短期能掌握的,如果想快速上手,先学小程序,遇到不懂的地方再去查资料,也未尝不可。

申请完成以后,你会得到一个AppID(小程序编号)和AppSecret(小程序密钥),后面都会用到。

开发者工具支持Windows和MacOS两个平台。我装的是Windows(64位)的版本,这个教程的内容也是基于该版本的,但是MacOS版本的操作应该是完全一样的。

点击右侧的+号,就跳出了新建小程序的页面。

如果直接新建小程序,会生成一个完整的项目脚手架。对于初学者来说,这样反而不利于掌握各个文件的作用。更好的学习方法是,自己从头手写每一行代码,然后切换到"导入项目"的选项,将其导入到开发者工具。

导入时,需要给小程序起一个名字,并且填写项目代码所在的目录,以及前面申请的AppID。

下面,就请大家动手,跟着写一个最简单的小程序,只要五分钟就能完成。

第一步,新建一个小程序的项目目录。名字可以随便起,这里称为wechat-miniprogram-demo。

你可以在资源管理器里面,新建目录。如果熟悉命令行操作,也可以打开WindowsTerminal(没有的话,需要安装),在里面执行下面的命令,新建并进入该目录。

>mkdirwechat-miniprogram-demo>cdwechat-miniprogram-demo第二步,在该目录里面,新建一个脚本文件app.js。这个脚本用于对整个小程序进行初始化。

app.js内容只有一行代码。

App({});上面代码中,App()由小程序原生提供,它是一个函数,表示新建一个小程序实例。它的参数是一个配置对象,用于设置小程序实例的行为属性。这个例子不需要任何配置,所以使用空对象即可。

第三步,新建一个配置文件app.json,记录项目的一些静态配置。

app.json文件的内容,至少必须有一个pages属性,指明小程序包含哪些页面。

{"pages":["pages/home/home"]}上面代码中,pages属性是一个数组,数组的每一项就是一个页面。这个示例中,小程序只有一个页面,所以数组只有一项pages/home/home。

pages/home/home是一个三层的文件路径。

第四步,新建pages/home子目录。

$mkdir-ppages/home然后,在这个目录里面新建一个脚本文件home.js。该文件的内容如下。

Page({});上面代码中,Page()由小程序原生提供,它是一个函数,用于初始化一个页面实例。它的参数是一个配置对象,用于设置当前页面的行为属性。这里是一个空对象,表示不设置任何属性。

home.wxml的内容很简单,就写一行helloworld。

helloworld到这一步,就算基本完成了。现在,打开小程序开发工具,导入项目目录wechat-miniprogram-demo。如果一切正常,就可以在开发者工具里面,看到运行结果了。

点击工具栏的"预览"或"真机调试"按钮,还可以在你的手机上面,查看真机运行结果。

上一节的home.wxml文件,只写了最简单的一行helloworld。实际开发中,不会这样写,而是要加上各种标签,以便后面添加样式和效果。

小程序的WXML语言提供各种页面标签。下面,对home.wxml改造一下,加上两个最常用的标签。

helloworld上面的代码用到了两个标签:

标签表示一个区块,用于跟其他区块分隔,类似HTML语言的

标签。表示一段行内文本,类似于HTML语言的标签,多个标签之间不会产生分行。

注意,每个标签都是成对使用,需要有闭合标记,即标签名前加斜杠表示闭合,比如的闭合标记是。如果缺少闭合标记,小程序编译时会报错。

由于我们还没有为页面添加任何样式,所以页面的渲染效果跟上一节是一样的。后面添加样式时,大家就可以看到标签的巨大作用。

总结一下,这个示例一共有4个文件,项目结构如下。

|-app.json|-app.js|-pages|-home|-home.wxml|-home.js这就是最简单、最基本的小程序结构。所有的小程序项目都是这个结构,在上面不断添加其他内容。

这个结构分成两层:描述整体程序的顶层app脚本,以及描述各个页面的page脚本。

顶层的app.json文件用于整个项目的配置,对于所有页面都有效。

下面,改一下前面的app.json,加入window属性。

{"pages":["pages/home/home"],"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTextStyle":"white","navigationBarTitleText":"小程序Demo"}}上面代码中,window属性设置导航栏的背景颜色为红色(#ff0000),文本颜色为白色(white),标题文字为"小程序Demo"。

开发者工具导入项目代码,就可以看到导航栏变掉了。

除了窗口的样式,很多小程序的顶部或尾部,还有选项栏,可以切换到不同的选项卡。

(完)

业余草说:

迫不及待的想看后面的连载内容了!

Spongecaptain说:

对我来说知道小程序源码如何编写的大致逻辑就足够了

希月说:

shanquan说:

微慕说:

不错的入门教程,期待连载

Wh0am!说:

前两天也写了个demo试试,确实上手挺简单的,再加上免费云API,数据库调用也足够一般开发使用。希望可以多讲讲原理,跟当前的Vue、react之类的对比看。

RickeyGong说:

期待连载

Three-uncle说:

thosefree说:

阮一峰老师做的“小程序入门教程之一---初次上手”那张图片有点辣眼睛啊囧

Jerrychung说:

期待后续

.neter菜猪说:

通俗易懂,支持一下!!!

KlausJ说:

neko说:

太棒啦

wonpn说:

赞,很有用的入门教程,期待后续。

恩珠说:

期待连载嘎嘎

kaba说:

UncaughtReferenceError:defineisnotdefinedathome.js:1

对不起,之前我提出的在macOS下编译报错的问题,是我自己的问题。不要意思,打扰了。

Anne说:

什么时候更新下一期教程

山前说:

对于腾讯这样一个企业,维护和发展一个巨大的行业标准,实在是令人不信任。不管是技术还是非技术层面

Rivalsa说:

小程序还是挺不错的,省去了很多麻烦,但也有不好的地方,就是自己的业务受制于第三方。

Thinker说:

对于从入门就学小程序的我来说,阮一峰的教程让我看到了不一样的一个角度,不管怎么说吧,学东西其实方式只是一个途径,过程才是需要自己不断地去体会

jiaonilulu说:

肖说:

又到周五了,我是刷周刊过来的,意外收获,期待连载

landius说:

在标题七,九中间少了个八?

阮一峰说:

@landius:

谢谢指出,标错了,改过来了。

ew说:

现在大部分都是用框架开发小程序,react用tarovue用uni-app

节点说:

初学者一开始就从完整的项目脚手架学习,的确会头大!拆分开从头创建每个文件、手写每行代码是很有必要的

菊部说:

最好是设立个专栏吧大佬

Can说:

兔子说:

好详细通俗易懂继续往下看

ranel说:

Mac更新系统后的bug

luseike说:

多个text会产生换行

王军伟说:

谢谢阮老师。写的非常好,小白入门必要的信息不多不少。特别是对基础的这几个文件说明的非常容易理解。

玛蒂蒂说:

UncaughtReferenceError:defineisnotdefinedathome.js:1

我也是,请问怎么解决这个问题

吴杭说:

引用王军伟的发言:谢谢阮老师。写的非常好,小白入门必要的信息不多不少。特别是对基础的这几个文件说明的非常容易理解。

良心教程,入门必备!!

Lucy说:

谢阮老师。写的非常好,小白入门必要的信息不多不少。特别是对基础的这几个文件说明的非常容

THE END
1.全面解析微信小程序:从基础到实践小程序解析文章浏览阅读859次,点赞6次,收藏9次。小程序是一种新的开放能力,可以在微信内被便捷地获取和传播。它基于微信平台,为开发者提供了一种轻量级的应用开发框架,使得开发出的应用能够快速地在海量微信用户中推广和使用。微信小程序作为一种独特的移动应用开发模式,具有诸https://blog.csdn.net/M3527199296/article/details/144220750
2.uniapp基础组件51CTO博客uniapp-vue和小程序框架,渲染引擎是webview的。但为了优化体验,部分组件如map、video、textarea、canvas通过原生控件实现,原生组件层级高于前端组件(类似flash层级高于div)。为了能正常覆盖原生组件,设计了cover-view. cover-image 覆盖在原生组件上的图片视图。可覆盖的原生组件同cover-view,支持嵌套在?https://blog.51cto.com/u_15072914/4401327
3.双滦事非常方便!门诊慢性病特殊采以网上申报啦!双滦区参保人员可网上进行申报门诊慢性病、特殊病疾病,在手机上查看申报认定进度和结果,更加便民利民。具体流程如下↓↓↓ 河北智慧医保小程序 (小程序申报端) (一)如何进入河北智慧医保小程序? 申报人微信扫描“二维码”或登陆微信客户端搜索“河北智慧医保”注册登陆,选择“门慢门特申报”进入“河北省门诊慢性病特殊病https://www.thepaper.cn/newsDetail_forward_13525386
4.有诉求,就找它!“粤省心”便民热线平台全新上线!南方plus扫一扫“粤省心”小程序码或 微信搜索“粤省心”进入小程序 马上体验! 多渠道,问题反馈更省心 “粤省心”集成热线、小程序、广东政务服务网、粤省事、粤商通等客服渠道,提供一体化咨询服务,市民可根据个人习惯和办事需求选择不同渠道,问题反馈更省心。 #1 https://static.nfapp.southcn.com/content/202107/13/c5517183.html
5.微信小程序开发者文档# 小程序卡片对接 #● 客户发送卡片 支持客户在小程序原生对话中发送小程序卡片。需要在客服会话消息 button 中增加几个字段: show-message-card 显示会话内消息卡片, send-message-title 会话内消息卡片标题,send-message-path 会话内消息卡片点击跳转小程序路径,send-message-img 会话内消息卡片图片。添加后,访客接https://codecenter.sobot.com/pages/6c0905/
6.支付宝开放平台拥有支付宝小程序三方模式业务运营及推广能力 特色案例 简介 企迈智慧零售模板 支付宝小程序生态“新零售服务商” 新零售行业的支付宝小程序,为商户打造本地生活生态圈,支付即会员,用户留存一步到位,有效提升用户进店率和复购率。 支付宝扫码体验 汇元景区租赁模版 https://mini.open.alipay.com/channel/isv.htm
7.H5页面跳转小程序的3种实现方式javascript技巧这篇文章主要给大家介绍了关于H5页面跳转小程序的3种实现方式,说出来你可能不信,每位商家几乎都会h5转跳到小程序、H5转跳至小程序的应用范围十分广阔,需要的朋友可以参考下https://www.jb51.net/javascript/295336aoi.htm
8.程序源代码pdf转word工具及源码腾讯云开发者社区Python组件包含了有许多处理图形(GUI)的工具包,这些工具包在使用方面基本都是大同小异,python gui使用起来比较简单。所以我们这里就选用这个基本库作为比绘制图形的开发包来使用的。 四、python 打包执行组件 因为我们要把开发好的程序打包成可以用于PC端执行的小工具,这里面呢我们就需要用到python打包执行组件库。 https://cloud.tencent.com/developer/article/2092566
9.c#调用微信小程序Provedlc# 调用微信小程序 //微信也不给个c#调用的例子 只好自己造咯;ps:大佬勿喷 1publicstringGetWx(stringcode,stringiv,stringencryptedData)2{3//context.Response.ContentType = "text/plain";4stringxx ="";5try6{7//code = HttpContext.Current.Request.QueryString["code"].ToString();8//iv = HttpContexthttps://www.cnblogs.com/provedl/p/9336480.html
10.短剧CPS到底怎么玩的?如何加入呢?TaoKeShow红火剧场、九州剧场、初尘剧场在麻雀小程序的数据里面就可以查看,来看视频和东方剧场暂时无法查看收益,但并不影响结算! 15. 小程序链接掉了怎么处理? 链接掉了大多数是作品违规平台规则了,直接隐藏就好了 16. 麻雀账号最多绑定多少个账号? 这个没有限制 https://www.taokeshow.com/39779.html
11.微信视频号直播卖货没人看怎么办最后我们还可以借助品牌的效应,去做推广!还可以借助大商创小程序直播带货系统,打造私域流量。 比如说我们可以通过传单或者是线下拉人的方式,来获取一些了解过品牌的用户,然后在里面发布相关的直播链接,引导大家去观看直播,慢慢的直播就会有越来越多的人去看了。 https://www.dscmall.cn/news/2841.html
12.字节小程序文档小程序是一种新形式的应用程序,本文主要介绍了开发小程序与开发传统 Web 项目时的区别。 开发小程序与开发 Web 的区别 小程序开发的模式与 Web 开发类似,使用 JavaScript 进行开发,使用 CSS 控制样式,最终使用 HTML 进行渲染。但是,我们开发的小程序的 JS 代码,其实是运行在一个被称为“逻辑层”的独立运行环境中https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/guide/start/introduction/
13.「TPshop小程序」微信小程序小程序商城TPshop小程序是针对电商业务制定的电商小程序,八大优势,完美解决电商小程序企业在电商业务里的痛点和难点,包含微信电商小程序,小程序商城,电商小程序等网上商城系统!https://www.tp-shop.cn/mini/
14.文档概述·萤石开放平台API文档如果您未获得live-paler组件开通资质,微信还支持小程序跳转,通过 wx.navigateToMiniProgram API,直接跳转到萤石云小程序的直播或者回放页,免开发实现设备直播、设备回放。 视频播放依赖于您的账户信息和设备信息,因此需在您的小程序中配置accessToken和设备信息。 // 从我的小程序跳转到设备播放页,免开发实现设备直播。https://open.ys7.com/help/32
15.杭州小程序开发杭州小程序制作杭州微信公众号开发网商互联专业提供:小程序开发,小程序制作,小程序定制,小程序设计,微信小程序开发,专业技术倾力打造,开发,咨询,维护一站式服务https://www.hzjxsj.com/
16.微信小程序大全微信小程序有哪些即速商店-微信小程序商店,覆盖各个行业的优质小程序,为微信小程序开发者与运营者提供参考案例,致力于为用户提供优质的微信小程序体验。http://shop.jisuapp.cn/wechat/
17.汇丰银行启用新LOGO使用小程序阅读这篇文章 打开小程序 汇丰银行于1865年在香港成立,并于一个月后在上海设立分行。这是第一家根据苏格兰银行原则运营的本地银行。当时旨在为欧洲、印度和中国之间日趋频繁的贸易往来提供融资服务。现如今汇丰银行在伦敦、香港、纽约、巴黎和百慕大证券交易所上市,股东 200,000 名,遍布全球 131 个国家和https://m.logonews.cn/hsbc-new-logo.html
18.微信小程序开发平台微信小程序开发平台,全程无需代码即可完成开发工作,海量免费小程序搭建模板案例,同时进行头条百度抖音快手多平台搭建,多平台开展营销渠道搭建。https://qz.fkw.com/index.html