微信小程序开发入门教程
<h2><strong>1.学习基础</strong></h2><p>微信小程序是运行在微信环境中的应用,它只能在微信中运行,不能运行在浏览器等其他环境中,微信团队提供了专门的开发工具用于微信小程序的开发,还提供了丰富的API,让我们的小程序能够具备与手机设备和微信交互的能力,比如,获取摄像头拍照、访问文件系统等,那么与微信交互主要体现在以下三个方面:</p>
<p>1、获取当前登录微信的用户的用户信息;</p>
<p>2、微信支付;</p>
<p>3、使用模板消息向微信发送通知消息。</p>
<p>开发微信小程序需要具备一定的前端基础知识,但不是全部,前端三大基础是:html、css、javascript,那么在微信小程序中html是用不到了的,因为它用wxml代替了html这一自创语言代替了html,虽然原理类似,但是却比html简单了很多,这个简单主要体现在标签的简化和规范。剩下的2个基础,一个是CSS,一个是javascript,先说CSS,微信小程序中用wxss替代CSS,但是这个wxss基本与CSS类似,只不过它添加了几个自身的属性。而javascript也没有在浏览器中使用那么复杂,这里只用到了javascript的核心。 总言之,开发微信小程序需要具备 wxml、wxss(css)、javascript核心的能力。</p>
<h2><strong><img src="https://img2018.cnblogs.com/i-beta/1260303/201912/1260303-20191231114733651-1458431623.png" alt=""></strong></h2>
<p><strong style="font-size: 1.5em">1.<span style="font-family: 黑体">学习帮助</span></strong></p>
<p><span style="font-family: 宋体">(</span>1<span style="font-family: 宋体">)官方文档:</span><span style="font-family: 宋体">微信小程序开发文档链接为:</span>https://mp.weixin.qq.com/debug/wxadoc/dev/index.html<span style="font-family: 宋体">,如下图:</span></p>
<p class="p"> <img src="https://img2018.cnblogs.com/i-beta/1260303/201912/1260303-20191231105322708-848643257.png" alt=""></p>
<p> </p>
<p> </p>
<p>(2)<span style="font-family: 宋体">微信小程序全套视频教程下载地址:</span><span>http://pan.baidu.com/s/1gf1KLEj</span><span style="font-family: 宋体"><br></span></p>
<h2><strong>2.<span style="font-family: 黑体">环境搭建</span></strong></h2>
<p><strong><span style="font-family: 宋体">第一步:下载微信小程序开发者工具并安装,下载路径:</span></strong></p>
<p><span style="text-decoration: underline">https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html</span></p>
<p><span style="font-family: 宋体">进到下载界面后,根据自己的操作系统选择相应的链接进行下载,下载完成后进行安装。</span></p>
<p> </p>
<p><strong><span style="font-family: 宋体">第二步:登录工具</span></strong></p>
<p><span style="font-family: 宋体">开发者工具安装完成后我们就可以将其打开,初次打开会需要用微信扫码登录,入下图,用手机微信扫一扫后确认登录就可以了。</span></p>
<p> <img src="https://img2018.cnblogs.com/i-beta/1260303/201912/1260303-20191231105714648-149407399.png" alt=""></p>
<p><strong> <span style="font-family: 宋体">第三步:创建一个项目</span></strong></p>
<p><span style="font-family: 宋体">登录成功后,如果是第一次使用该工具会弹出创建项目的窗口,如下图:</span></p>
<p> <img src="https://img2018.cnblogs.com/i-beta/1260303/201912/1260303-20191231105724676-1472834877.png" alt=""></p>
<p> <span style="font-family: 宋体">在创建过程中,如果选择的本地文件夹是个空文件夹会出来一个勾选项</span><span style="font-family: Calibri">“</span><span style="font-family: 宋体">在当前目录中创建</span><span style="font-family: Calibri">quick start</span><span style="font-family: 宋体">项目</span><span style="font-family: Calibri">”</span><span style="font-family: 宋体">,为方便初学者了解微信小程序的基本代码结构,请勾选此项,勾选后,开发者工具会帮助我们在开发目录里生成一个简单的 </span><span style="font-family: Calibri">demo</span><span style="font-family: 宋体">,如下图:</span></p>
<p> <img src="https://img2018.cnblogs.com/i-beta/1260303/201912/1260303-20191231105733428-1978907475.png" alt=""></p>
<p><strong><span style="font-family: 宋体">第四步:项目代码结构解释</span></strong></p>
<p><strong><span style="font-family: 宋体"><img src="https://img2018.cnblogs.com/i-beta/1260303/201912/1260303-20191231105834995-76513198.png" alt=""></span></strong></p>
<p> </p>
<p> <span style="font-family: 宋体">点击开发者工具左侧导航的</span><span style="font-family: Calibri">“</span><span style="font-family: 宋体">编辑</span><span style="font-family: Calibri">”</span><span style="font-family: 宋体">,我们可以看到这个项目,已经初始化并包含了一些简单的代码文件。最关键也是必不可少的,是 </span><span style="font-family: Calibri">app.js</span><span style="font-family: 宋体">、</span><span style="font-family: Calibri">app.json</span><span style="font-family: 宋体">、</span><span style="font-family: Calibri">app.wxss </span><span style="font-family: 宋体">这三个。其中,</span><span style="font-family: Calibri">.js</span><span style="font-family: 宋体">后缀的是脚本文件,</span><span style="font-family: Calibri">.json</span><span style="font-family: 宋体">后缀的文件是配置文件,</span><span style="font-family: Calibri">.wxss</span><span style="font-family: 宋体">后缀的是样式表文件。微信小程序会读取这些文件,并生成小程序实例。</span></p>
<h2><strong>3.<span style="font-family: 黑体">目录结构</span></strong></h2>
<p><span style="font-family: 宋体">下面我们简单了解这三个文件的功能,方便修改以及从头开发自己的微信小程序。</span></p>
<p>1、<strong>app.js</strong><span style="font-family: 宋体">是小程序的</span><strong><span style="font-family: 宋体">脚本</span></strong><span style="font-family: 宋体">代码。我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量。调用框架提供的丰富的</span> API<span style="font-family: 宋体">,如本例的同步存储及同步读取本地数据。</span></p>
<p> <span style="color: rgba(255, 0, 0, 1)"><img src="https://img2018.cnblogs.com/i-beta/1260303/201912/1260303-20191231105939534-124246752.png" alt=""></span></p>
<p>Console.log(‘<span style="font-family: 宋体">打印日志信息,在</span>console<span style="font-family: 宋体">中可见!</span>’)<span style="font-family: 宋体">;</span></p>
<p> </p>
<p>2、<strong>app.json</strong> <span style="font-family: 宋体">是对整个小程序的</span><strong><span style="font-family: 宋体">全局配置</span></strong><span style="font-family: 宋体">。我们可以在这个文件中配置小程序是由哪些页面组成,配置小程序的窗口背景色,配置导航条样式,配置默认标题。</span><strong><span style="font-family: 宋体"><span style="color: rgba(255, 0, 0, 1)">注意该文件不可添加任何注释</span>。</span></strong></p>
<p> </p>
<p>3、<strong>app.wxss</strong> <span style="font-family: 宋体">是整个小程序的</span><strong><span style="font-family: 宋体">公共样式表</span></strong><span style="font-family: 宋体">。我们可以在页面组件的</span> class <span style="font-family: 宋体">属性上直接使用 </span><span style="font-family: Calibri">app.wxss </span><span style="font-family: 宋体">中声明的样式规则。</span></p>
<p> </p>
<p><span style="font-family: 宋体">我们注意到,在实例程序的代码中还有</span>2<span style="font-family: 宋体">个文件夹,</span><span style="font-family: 宋体">一个是</span>pages,<span style="font-family: 宋体">一个是</span><span style="font-family: Calibri">utils,</span><span style="font-family: 宋体">其</span><span style="font-family: 宋体">中</span><strong>utils<span style="font-family: 宋体">是放通用工具类方法的一个文件夹,</span><span style="font-family: Calibri">pages</span><span style="font-family: 宋体">是存放所有页面的文件夹</span></strong><span style="font-family: 宋体">。我们着重讲一下这个</span>pages.</p>
<p> </p>
<h2><strong>4.<span style="font-family: 黑体">文件</span></strong><strong><span style="font-family: 黑体">构成</span></strong></h2>
<p> </p>
<p><span style="font-family: 宋体"> 在这个示例中,我们有两个页面,</span>index <span style="font-family: 宋体">页面和 </span><span style="font-family: Calibri">logs </span><span style="font-family: 宋体">页面,即欢迎页和小程序启动日志的展示页,他们都在 </span><span style="font-family: Calibri">pages </span><span style="font-family: 宋体">目录下。微信小程序中的每一个页面的【路径</span><span style="font-family: Calibri">+</span><span style="font-family: 宋体">页面名】都需要写在 </span><span style="font-family: Calibri">app.json </span><span style="font-family: 宋体">的 </span><span style="font-family: Calibri">pages </span><span style="font-family: 宋体">中,且 </span><span style="font-family: Calibri">pages </span><span style="font-family: 宋体">中的第一个页面是小程序的首页。</span></p>
<p> <span style="font-family: 宋体">每一个小程序页面是由同路径下同名的四个不同后缀文件的组成,如:</span><span style="font-family: Calibri">index.js</span><span style="font-family: 宋体">、</span><span style="font-family: Calibri">index.wxml</span><span style="font-family: 宋体">、</span><span style="font-family: Calibri">index.wxss</span><span style="font-family: 宋体">、</span><span style="font-family: Calibri">index.json</span><span style="font-family: 宋体">。</span><span style="font-family: Calibri">.js</span><span style="font-family: 宋体">后缀的文件是脚本文件,</span><span style="font-family: Calibri">.json</span><span style="font-family: 宋体">后缀的文件是配置文件,</span><span style="font-family: Calibri">.wxss</span><span style="font-family: 宋体">后缀的是样式表文件,</span><span style="font-family: Calibri">.wxml</span><span style="font-family: 宋体">后缀的文件是页面结构文件。</span></p>
<p> index.wxml <span style="font-family: 宋体">是页面的结构文件:</span></p>
<div class="cnblogs_Highlighter">
<pre class="brush:html;gutter:true;"><!--index.wxml-->
<view class="container">
<viewbindtap="bindViewTap" class="userinfo">
<image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image>
<text class="userinfo-nickname">{{userInfo.nickName}}</text>
</view>
<view class="usermotto">
<text class="user-motto">{{motto}}</text>
</view>
</view></pre>
</div>
<p><span style="font-family: 宋体">本例中使用了</span><span style="text-decoration: underline"><view/></span><span style="font-family: 宋体">、</span><span style="text-decoration: underline"><image/></span><span style="font-family: 宋体">、</span><span style="text-decoration: underline"><text/></span><span style="font-family: 宋体">来搭建页面结构,绑定数据和交互处理函数。</span></p>
<p> index.js <span style="font-family: 宋体">是页面的脚本文件,在这个文件中我们可以监听并处理页面的生命周期函数、获取小程序实例,声明并处理数据,响应页面交互事件等。</span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">index.js</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取应用实例<br>var app = getApp()</span><span style="color: rgba(0, 0, 0, 1)">
Page({
data: {
motto: </span>'Hello World'<span style="color: rgba(0, 0, 0, 1)">,
userInfo: {}
},
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">事件处理函数</span>
<span style="color: rgba(0, 0, 0, 1)">
bindViewTap: </span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">() {
wx.navigateTo({
url: </span>'../logs/logs'<span style="color: rgba(0, 0, 0, 1)">
})
},
onLoad: </span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> () {
console.log(</span>'onLoad'<span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 0, 255, 1)">var</span> that = <span style="color: rgba(0, 0, 255, 1)">this</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">调用应用实例的方法获取全局数据</span>
<span style="color: rgba(0, 0, 0, 1)">
app.getUserInfo(</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(userInfo){
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">更新数据 that.setData({</span>
<span style="color: rgba(0, 0, 0, 1)">
userInfo:userInfo
})
})
}
})</span></pre>
</div>
<p>index.wxss 是页面的样式表:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:css;gutter:true;">/**index.wxss**/
.userinfo {
display: flex;
flex-direction: column;
align-items: center;
}
.userinfo-avatar {
width: 128rpx;
height: 128rpx;
margin: 20rpx;
border-radius: 50%;
}
.userinfo-nickname {
color: #aaa;
}
.usermotto {
margin-top: 200px;
}
</pre>
</div>
<p><span style="font-family: 宋体">页面的样式表是非必要的。当有页面样式表时,页面的样式表中的样式规则会层叠覆盖</span> app.wxss <span style="font-family: 宋体">中的样式规则。如果不指定页面的样式表,也可以在页面的结构文件中直接使用 </span><span style="font-family: Calibri">app.wxss </span><span style="font-family: 宋体">中指定的样式规则。</span></p>
<p> index.json <span style="font-family: 宋体">是页面的配置文件:</span></p>
<p> <span style="font-family: 宋体">页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖 </span><span style="font-family: Calibri">app.json </span><span style="font-family: 宋体">的 </span><span style="font-family: Calibri">window </span><span style="font-family: 宋体">中相同的配置项。如果没有指定的页面配置文件,则在该页面直接使用 </span><span style="font-family: Calibri">app.json </span><span style="font-family: 宋体">中的默认配置。</span></p>
<p> logs <span style="font-family: 宋体">的页面结构</span></p>
<div class="cnblogs_Highlighter">
<pre class="brush:html;gutter:true;"><!--logs.wxml-->
<view class="container log-list">
<block wx:for-items="{{logs}}" wx:for-item="log">
<text class="log-item">{{index + 1}}. {{log}}</text>
</block>
</view></pre>
</div>
<p> </p>
<p> logs <span style="font-family: 宋体">页面使用</span><span style="font-family: Calibri"> </span><span style="text-decoration: underline"><block/></span> <span style="font-family: 宋体">控制标签来组织代码,在</span><span style="font-family: Calibri"> <block/> </span><span style="font-family: 宋体">上使用</span><span style="font-family: Calibri"> </span><span style="text-decoration: underline">wx:for-items</span> <span style="font-family: 宋体">绑定</span><span style="font-family: Calibri"> logs </span><span style="font-family: 宋体">数据,并将</span><span style="font-family: Calibri"> logs </span><span style="font-family: 宋体">数据循环展开节点</span></p>
<div class="cnblogs_Highlighter">
<pre class="brush:javascript;gutter:true;">//logs.js
var util = require('../../utils/util.js')
Page({
data: {
logs: []
},
onLoad: function () {
this.setData({
logs: (wx.getStorageSync('logs') || []).map(function (log) {
return util.formatTime(new Date(log))
})
})
}
})</pre>
</div>
<p> </p>
<p><span style="font-family: 宋体">运行结果如下:</span></p>
<p class="p"> <img src="https://img2018.cnblogs.com/i-beta/1260303/201912/1260303-20191231114523934-112460467.png" alt=""></p>
<p> </p>
<p><strong style="font-size: 1.5em">5.</strong><strong style="font-size: 1.5em"><span style="font-family: 黑体">手机预览</span></strong></p>
<p><strong><span style="font-family: 宋体">(只有获得</span>AppId<span style="font-family: 宋体">的才有权限预览)</span></strong><span style="font-family: 宋体">开发者工具左侧菜单栏选择</span>"<span style="font-family: 宋体">项目</span><span style="font-family: Calibri">"</span><span style="font-family: 宋体">,点击</span><span style="font-family: Calibri">"</span><span style="font-family: 宋体">预览</span><span style="font-family: Calibri">"</span><span style="font-family: 宋体">,扫码后即可在微信客户端中体验。</span> </p>
<h2><strong>6.<span style="font-family: 黑体">开发须知</span></strong></h2>
<p> <span style="font-family: 宋体">以上是微信小程序前端开发的基本流程,而实际上要做一个内容可以更新的小程序,单有前端开发是远远不够的,还需要后台开发。后台开发与</span><span style="font-family: Calibri">web</span><span style="font-family: 宋体">开发的后台基本无异,可以选择用</span><span style="font-family: Calibri">java</span><span style="font-family: 宋体">、</span><span style="font-family: Calibri">php</span><span style="font-family: 宋体">、</span><span style="font-family: Calibri">nodejs</span><span style="font-family: 宋体">等任一语言,有一点需要注意的是小程序后台服务器必须是</span><span style="font-family: Calibri">https</span><span style="font-family: 宋体">协议的,这就要求必须购买云服务器并将后台服务器设置成</span><span style="font-family: Calibri">https</span><span style="font-family: 宋体">服务。而做这些的前提是要先购买好服务器和域名。服务器可以选择腾讯云服务器,购买地址如下:</span><span style="text-decoration: underline">http://www.qcloud.com/redirect.php?redirect=1001&cps_key=f5993d572d5539c3c9ff8dbc9f62d2d9</span></p>
<p><span style="font-family: 宋体">要做一个可更新的小程序单有云服务器也还是不够,因为内容是可更新的,所以实际在小程序上看到的内容,我们大部分是存储在数据库中,所以我们还需要购买云数据库,这个腾讯云也有提供,购买地址如下:</span><span style="text-decoration: underline">http://www.qcloud.com/redirect.php?redirect=1003&cps_key=f5993d572d5539c3c9ff8dbc9f62d2d9</span></p>
<p><span style="font-family: 宋体">而域名的购买,腾讯云也可以提供,购买地址:</span><span style="text-decoration: underline">https://dnspod.qcloud.com/?from=qcloudHpHeaderDnspod&fromSource=qcloudHpHeaderDnspod</span></p><br><br>
来源:https://www.cnblogs.com/suola/p/12123654.html
頁:
[1]