一、前言
小程序上手很快,有一定基础的朋友通过实例学习,一天左右时间就可以学习完毕,笔者这里为新手分享相关的学习实例,供朋友们学习和参考,希望能够帮助到你。
二、开发工具
微信开发者工具下载:
| 版本 | 地址 |
| --- | --- |
| win 64 | [点我下载](https://servicewechat.com/wxa-dev-logic/download_redirect?type=x64&from=mpwiki) |
| win 32 | [点我下载](https://servicewechat.com/wxa-dev-logic/download_redirect?type=ia32&from=mpwiki ) |
| ios | [点我下载](https://servicewechat.com/wxa-dev-logic/download_redirect?type=darwin&from=mpwiki) |
![](https://box.kancloud.cn/c7229cc3b0ba5d89614e7e211ebd77ac_1334x871.png)
开发者账号注册地址:[点击这里注册一个小程序](https://mp.weixin.qq.com/wxopen/waregister?action=step1)
![](https://box.kancloud.cn/c7229cc3b0ba5d89614e7e211ebd77ac_1334x871.png)
注册完毕后进入到后台管理界面,然后配置小程序相关的信息,名称、头像、关联公众号等。
注:如果不知道后续怎么登录小程序后台,使用小程序的账号登录公众平台就可以了。
公众平台登录地址:https://mp.weixin.qq.com/
三、使用工具创建一个新的小程序
步骤一:打开微信开发者工具
![](https://box.kancloud.cn/dfcf6635a9129e984ed704a68d5ec37a_334x474.png)
步骤二:创建一个新的小程序
![](https://box.kancloud.cn/677762a0da1368193fa1a47ba3b39955_411x474.png)
得到的小程序文件如下
![](https://box.kancloud.cn/8fb2b2b7ec5ecd3092de5f27e3bd0f6e_615x193.png)
四、小程序json配置文件
~~~
{
"pages": [
"pages/index/index",
"pages/logs/logs"
],
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "演示测试",
"navigationBarTextStyle": "black"
},
"tabBar": {
"color": "#4f6578",
"selectedColor": "#1fba09",
"borderStyle": "light",
"list": [
{
"pagePath": "pages/index/index",
"selectedIconPath": "pages/img/home-1.png",
"iconPath": "pages/img/home.png",
"text": "首页 "
},
{
"pagePath": "pages/about/index",
"selectedIconPath": "pages/img/me-1.png",
"iconPath": "pages/img/me.png",
"text": "介绍"
}
]
}
}
~~~
pages:小程序的所有界面需要在pages里声明路径
window:参数中控制头部颜色及标题相关信息,详细看官网的手册。
tabBar:是小程序底部菜单部分,控制菜单的样式与图标路径等。
五、在配置文件中配置完毕以后进入index页面
1、小程序界面的几个文件
index.wxml 小程序的html代码
index.wxjs 小程序的js代码
index.json 页面配置文件
index.wxss 小程序样式
2、基本界面布局
wxml、沿用前端写法,不过这里要注意小程序中的标签仅有view、button 、text 等界面元素。通常使用view button text,还有相关部分标签,表单等在官网中可以找到介绍。
wxss、通过小程序中的部分样式通过类来控制,这里只能用class来控制,样式的方法与css相同,部分微信自带样式不同。这里大多数情况下开发使用css的基础知识就可以完成界面的样式布局等功能。
3、基本wxjs介绍
小程序中的wxjs需要使用小程序中封装的js方法来进行开发,数据接口、元素删减等等,界面交互特效。
数据接口实例:
~~~
Page({
data: {
duration: 2000,
indicatorDots: true,
autoplay: true,
interval: 3000,
loading: false,
plain: false
},
onLoad: function () {
var that = this
wx.request({
url: '接口地址 https 地址',
method: 'get',
header: {
'content-type': 'application/json' // 默认值
},
success: function (res) {
//将获取到的json数据,存在名字叫zhihu的这个数组中
that.setData({ lists: res.data })//这里将数据赋值到了lists中
}
})
}
})
~~~
前端数据渲染:将接口获得的数据循环输出
~~~
<block wx:for="{{lists}}" wx:key="*this">
<view class="item" data-index="{{index}}" >item {{index}}--{{item.text}}</view>
</block>
~~~
4、页面的json文件
~~~
{
"navigationBarTitleText": "这是单页标题控制的json数据"
}
~~~
详细的官方参数:https://developers.weixin.qq.com/miniprogram/dev/framework/config.html
5、页面的样式
![](https://box.kancloud.cn/ff7f1ecc5ac4720e076a1db64e04b1b4_406x494.png)
wxml文件
~~~
<view class='page'>
<scroll-view class="scroll" scroll-y="true">
<view class="classname"></view>
<block wx:for="{{lists}}" wx:key="*this">
<view class="item" data-index="{{index}}" >item {{index}}--{{item.text}}</view>
</block>
</scroll-view>
<view class="btn">
<button type="primary" bindtap="addItemFn" >添加</button>
</view>
<view class="btn">
<button type="warn" bindtap="delItemFn" >删除</button>
</view>
</view>
~~~
wxxs文件
~~~
.page{
margin: 0 auto;
padding: 10rpx;
}
.scroll{height:600rpx;border: 1px solid #ccc;}
.item{ margin-top:10rpx;background: #ddd; height: 40rpx;}
.btn{
width: 45%;
margin: 10rpx;
float: left
}
~~~
注:与css类似,但小程序要注意的是只能使用class做样式设置
六、本章实例:元素动态增加删减
wxml文件:
~~~
<!--index.wxml-->
<view class='page'>
<scroll-view class="scroll" scroll-y="true">
<view class="classname"></view>
<block wx:for="{{lists}}" wx:key="*this">
<view class="item" data-index="{{index}}" >item {{index}}--{{item.text}}</view>
</block>
</scroll-view>
<view class="btn">
<button type="primary" bindtap="addItemFn" >添加</button>
</view>
<view class="btn">
<button type="warn" bindtap="delItemFn" >删除</button>
</view>
</view>
~~~
wxjs文件
~~~
//获取应用实例
var app = getApp()
Page({
//事件处理函数
addItemFn: function () {
var { lists } = this.data;
console.log({ lists});
var newData = { text: "12212" };
lists.push(newData);
this.setData({
lists: lists
})
},
//删除新元素
delItemFn: function (e) {
var { lists } = this.data;
var num = e.currentTarget.dataset.index;//获取data-index
lists.splice(num, 1);
this.setData({
lists: lists
})
}
})
~~~
wxcss文件
~~~
/* index.wxss */
.page{
margin: 0 auto;
padding: 10rpx;
}
.scroll{height:600rpx;border: 1px solid #ccc;}
.item{ margin-top:10rpx;background: #ddd; height: 40rpx;}
.btn{
width: 45%;
margin: 10rpx;
float: left
}
~~~