这篇带你分分钟入门小程序开发。从认识小程序开始到搭建开发环境以及代码编写,文章过长,建议保存慢慢看。
分分钟快速入门小程序开发一、认识微信小程序
(1)先了解应用如何开发Web App(内嵌内浏览器打开指定网页)
Native App(原生开发,也就是使用iOS和Android代码开发)
Hybrid App(混合APP开发,写DIV+CSS+JS+PHP代码开发) (2)微信、公众号、小程序
- 微信:就是一个聊天工具(类似于QQ)
- 微信公众号:企业或个人组织管理其粉丝/用户的应用(类似于APP)
- 微信小程序:不需要下载安装即可使用的软件/应用/APP
(3)小程序和公众号的区别
(4)小程序与APP的区别
二、知识储备
【重要】HTML、CSS、JavaScript、PHP(基础)、MySQL(基础)
【次要】接触过Angular / Vue / React之类的前段框架
【次要】了解Node、ECMAScript 2015(ES6)更好
三、搭建开发环境
(1)安装开发工具
下载:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
(2)安装:傻瓜式安装>>一直下一步
(3)创建项目
步骤1:双击开发者工具,用微信扫码登录即可
(4)创建:
(5)工具使用介绍
四、目录介绍
概念1:小程序项目由n个页面组成
概念2:每个页面一般由4个核心文件,分别为逻辑代码(js)、页面结构(wxml)、页面样式(wxss)、页面配置(json)
- & 多学一招:
- & wxml其实就是写HTML代码
- & wxss其实就是写css代码
五、代码编写
1.核心开发思想
步骤1:显示静态页面(DIV + CSS)
步骤2:数据动态化(js发送异步请求获取数据,接着遍历显示数据)
2.创建页面
3.实现步骤:- a.定义路由(名词,指设置一个网址来访问文件)
- b.创建页面(js、wxss、wxml、json)
- c.修改wxml写结构(html)
- d.修改wxss写样式(css)
- -------------------------
复制代码
4.数据绑定
- 概 念:名词,指页面数据来源于js对象属性,并且对象属性值修改页面同步更新
- 效果图:将上图【?】替换成【PHP学院】
5.实现步骤- a.修改js文件代码
- b.修改wxml文件绑定数据
- ---------------
复制代码
shphp.wxml- <!--pages/shphp/shphp.wxml-->
- <view>【{{title}}】</view>
- <view>当前页面:pages/shphp/shphp</view>
- <view>
- 即可报名毕业
- <text>薪资不达8K不收学费</text>
- </view>
复制代码 shphp.js- // pages/shphp/shphp.js
- Page({
- /**
- * 页面的初始数据
- */
- data: {
- title: &#34;上海PHP学院&#34;
- },
- /**
- * 生命周期函数--监听页面加载
- * 相当于window.onload
- */
- onLoad: function (options) {
-
- }
- })
复制代码 6.数据遍历和判断:
效果图
- Page({
- //初始化页面数据(data对象中的所有属性能被页面访问到)
- data: {
- title: &#39;上海PHP学院&#39;,
- uname: &#39;小泽&#39;,
- phpData: [
- { title: &#39;2018年PHP课程重磅升级&#39;, title2: &#39;不8000就业不收学费&#39; },
- { title: &#39;2018年PHP课程重磅升级&#39;, title2: &#39;不8000就业不收学费&#39; },
- { title: &#39;2018年PHP课程重磅升级&#39;, title2: &#39;不8000就业不收学费&#39; }
- ]
- },
- /**
- * 生命周期函数--监听页面加载
- * 相当于window.onload
- */
- onLoad: function (options) {
- }
- })
复制代码 7.实现步骤
- a. 修改js文件代码(直接复制上面的准备代码)
- b. 修改wxml文件代码
shphp.js- Page({
- //初始化页面数据(data对象中的所有属性能被页面访问到)
- data: {
- title: &#39;上海PHP学院&#39;,
- uname: &#39;波妞&#39;,
- phpData: [
- { title: &#39;2018年PHP课程重磅升级&#39;, title2: &#39;不8000就业不收学费&#39; },
- { title: &#39;2018年PHP课程重磅升级&#39;, title2: &#39;不8000就业不收学费&#39; },
- { title: &#39;2018年PHP课程重磅升级&#39;, title2: &#39;不8000就业不收学费&#39; }
- ]
- },
- /**
- * 生命周期函数--监听页面加载
- * 相当于window.onload
- */
- onLoad: function (options) {
- }
- })
复制代码 shphp.wxml- <!--pages/shphp/shphp.wxml-->
- <view>【{{title}}】</view>
- <view>当前页面:pages/shphp/shphp</view>
- <view>
- 即可报名毕业
- <text>薪资不达8K不收学费</text>
- </view>
- <view wx:if=&#34;{{uname == &#39;波妞&#39;}}&#34;> 爱妃,寡人马上就到 </view>
- <view wx:elif=&#34;{{uname == &#39;小泽&#39;}}&#34;> 赶快洗白白 </view>
- <view wx:elif=&#34;{{uname == &#39;仓仓&#39;}}&#34;> 仓仓 </view>
- <view wx:else> 爱卿退下 </view>
- <view wx:for=&#34;{{phpData}}&#34;>
- {{index}}: {{item.title}}
- </view>
复制代码 六、文件配置
pages 声明小程序项目由哪些页面组成(注:默认加载第一个)- &#34;pages&#34;:[
- &#34;pages/joke/joke&#34;, //笑话
- &#34;pages/picture/picture&#34;, //趣图
- &#34;pages/shphp/shphp&#34;, //上海PHP学院
- &#34;pages/index/index&#34;, //小程序Demo页
- &#34;pages/logs/logs&#34; //小程序Demo页
- ],
复制代码 window 配置页面窗口- &#34;window&#34;:{
- &#34;navigationBarBackgroundColor&#34;: &#34;#268dcd&#34;, //导航栏背景
- &#34;navigationBarTitleText&#34;: &#34;无聊笑话&#34;, //导航栏标题
- &#34;navigationBarTextStyle&#34;: &#34;white&#34;, //导航栏标题颜色
- &#34;enablePullDownRefresh&#34;: true, //是否允许下拉刷新
- &#34;backgroundTextStyle&#34;: &#34;light&#34; //下拉框样式
- },
复制代码 tabBar 小程序底部导航- &#34;tabBar&#34;: {
- &#34;color&#34;: &#34;#000000&#34;, //底部菜单文字颜色
- &#34;selectedColor&#34;: &#34;#268dcd&#34;, //底部菜单文字选中颜色
- &#34;backgroundColor&#34;: &#34;#ffffff&#34;, //底部菜单背景颜色
- &#34;borderStyle&#34;: &#34;white&#34;, //底部菜单边框颜色
- &#34;list&#34;: [ //菜单个数(至少两个生效)
- {
- &#34;text&#34;: &#34;笑话&#34;,
- &#34;pagePath&#34;: &#34;pages/joke/joke&#34;,
- &#34;iconPath&#34;: &#34;image/ic_joke_gray.png&#34;, //默认图标
- &#34;selectedIconPath&#34;: &#34;image/ic_joke_blue.png&#34; //选中图片
- }
- ....
- }
复制代码 七、案例:笑话小程序
(1)效果图
(2)页面布局
将静态资源放到项目中
笑话页面
实现:
- a. 定义路由
- b. 创建目录和对应文件
- c. 修改wxml文件,声明页面结构
- d. 修改wxss文件,声明页面样式
app.wxss- /**app.wxss**/
- .container {
- height: 100%;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: space-between;
- padding: 200rpx 0;
- box-sizing: border-box;
- }
- .joke {
- margin: 10px;
- padding: 10px;
- border-radius: 5px;
- border-top: 1px solid #DEDEDE;
- border-left: 1px solid #DEDEDE;
- box-shadow: 2px 2px 2px #C7C7C7;
- }
复制代码 joke.wxml- <!--pages/joke/joke.wxml-->
- <view class=&#34;joke&#34;>
- <view>笑话1</view>
- <view>2018-8-8</view>
- </view>
- <view class=&#34;joke&#34;>
- <view>笑话1</view>
- <view>2018-8-8</view>
- </view>
复制代码 趣图页
实现方法:
- a. 定义路由
- b. 创建目录和对应文件
- c. 修改wxml文件,声明页面结构
- d. 修改wxss文件,声明页面样式
底部菜单:
实现:
- {
- &#34;pages&#34;: [
- &#34;pages/picture/picture&#34;,
- &#34;pages/joke/joke&#34;,
- &#34;pages/shphp/shphp&#34;,
- &#34;pages/index/index&#34;,
- &#34;pages/logs/logs&#34;
- ],
- &#34;window&#34;: {
- &#34;navigationBarBackgroundColor&#34;: &#34;#268dcd&#34;,
- &#34;navigationBarTitleText&#34;: &#34;无聊笑话&#34;,
- &#34;navigationBarTextStyle&#34;: &#34;white&#34;,
- &#34;enablePullDownRefresh&#34;: true,
- &#34;backgroundTextStyle&#34;: &#34;light&#34;
- },
- &#34;tabBar&#34;: {
- &#34;color&#34;: &#34;#000000&#34;,
- &#34;selectedColor&#34;: &#34;#268dcd&#34;,
- &#34;backgroundColor&#34;: &#34;#ffffff&#34;,
- &#34;borderStyle&#34;: &#34;white&#34;,
- &#34;list&#34;: [
- {
- &#34;text&#34;: &#34;笑话&#34;,
- &#34;pagePath&#34;: &#34;pages/joke/joke&#34;,
- &#34;iconPath&#34;: &#34;image/ic_joke_gray.png&#34;,
- &#34;selectedIconPath&#34;: &#34;image/ic_joke_blue.png&#34;
- },
- {
- &#34;text&#34;: &#34;趣图&#34;,
- &#34;pagePath&#34;: &#34;pages/picture/picture&#34;,
- &#34;iconPath&#34;: &#34;image/ic_gif_gray.png&#34;,
- &#34;selectedIconPath&#34;: &#34;image/ic_gif_blue.png&#34;
- }
- ]
- }
- }
复制代码 (3)数据绑定-请求笑话接口
接口:https://v.juhe.cn/joke/content/text.php?key=2ca3e19979fadf2279ac6a036669f5ad&page=1&pagesize=2
https://v.juhe.cn/joke/img/list.php?key=2ca3e19979fadf2279ac6a036669f5ad&page=1&pagesize=2&sort=asc&time=1418745237
a. 修改js
b. 修改页面
joke.js- // pages/picture/picture.js
- Page({
- /**
- * 页面的初始数据
- */
- data: {
- jokeList: [
- { content: &#39;笑话1&#39;, updatetime: &#39;2018-8-8&#39; },
- { content: &#39;笑话1&#39;, updatetime: &#39;2018-8-8&#39; },
- { content: &#39;笑话1&#39;, updatetime: &#39;2018-8-8&#39; }
- ]
- },
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function (options) {
- var thatObj = this;
- wx.request({
- url: &#39;https://v.juhe.cn/joke/content/text.php?key=2ca3e19979fadf2279ac6a036669f5ad&page=1&pagesize=10&#39;,
- success: function (res) {
- console.log(res.data.result.data)
- thatObj.setData({
- jokeList: res.data.result.data
- });
- }
- })
- },
- })
复制代码 joke.wxml - <!--pages/joke/joke.wxml-->
- <view class=&#34;joke&#34; wx:for=&#34;{{jokeList}}&#34;>
- <view> {{item.content}}</view>
- <view>{{item.updatetime}}</view>
- </view>
复制代码 趣味图页面
a.修改js
b.修改页面
picture.js- // pages/picture/picture.js
- Page({
- /**
- * 页面的初始数据
- */
- data: {
- jokeList: [
- { content: &#39;笑话1&#39;, updatetime: &#39;2018-8-8&#39;, url: &#39;&#39; },
- { content: &#39;笑话1&#39;, updatetime: &#39;2018-8-8&#39;, url: &#39;&#39; },
- { content: &#39;笑话1&#39;, updatetime: &#39;2018-8-8&#39;, url: &#39;&#39; }
- ]
- },
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function (options) {
- var thatObj = this;
- wx.request({
- url: &#39;https://v.juhe.cn/joke/img/list.php?key=2ca3e19979fadf2279ac6a036669f5ad&page=1&pagesize=10&sort=asc&time=1418745237 &#39;, //仅为示例,并非真实的接口地址
- success: function (res) {
- //console.log(res.data.result.data)
- thatObj.setData({
- jokeList: res.data.result.data
- });
- }
- })
- },
- })
复制代码 picture.wxml- <!--pages/picture/picture.wxml-->
- <view class=&#34;joke&#34; wx:for=&#34;{{jokeList}}&#34;>
- <view> {{item.conotent}}</view>
- <view>
- <image src=&#34;{{item.url}}&#34;></image>
- </view>
- <view>{{item.updatetime}}</view>
- </view>
复制代码 |