Python_小程序
一、开发前的准备工作
1.申请AppID:一个账号对应一个小程序,个人/个体只能申请5个小程序
2.下载开发工具
二、小程序的文件结构

三、
1.数据绑定
1.1数据的设置
Page(
data:{
name:'name',
age:18
}
)
page.js的内容
1.2数据的调用
<view>{{name}}</view>
<view>{{age}}</view>
page.wxml
2.列表的渲染
2.1数据的设置
Page(
data:{
stundents:[
{id:1,name:'alxes',age:11},
{id:2,name:'alxes',age:12},
{id:3,name:'alxes',age:13}
]
}
)
page.js
2.2数据的调用
<view wx:for="{{stundents}}">{{item.id}}{{item.name}}item.age</view>
page.wxml
除了item之外,还有index内置的参数,标识条目的位置
3.事件的监控
3.1事件的定义
Page(
data:{
counter:0
}
handleEvent(){
this.setDate({
counter:this.data.counter+1
})
}
)
page.js
3.2事件的引用
<button bindtap='handleEvent'>按钮</button>
四、小程序的配置
1.project.config.json:项目配置文件,比如项目名称,appid
2.sitemap.json:小程序搜索相关
3.app.json:全局配置,参考文档:https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html
| 属性 | 类型 | 必填 | 描述 |
| pages | string[] | 是 | 页面路径列表 |
| window | Object | 否 | 全局默认窗口表现 |
| tabBar | Object | 否 | 底部tab栏表现,底部导航栏 |
3.1tabBar设置
"tabBar": {
"list": [
{
"pagePath": "pages/index/index",
"text": "首页",
"iconPath": "/img/sy.jpg",
"selectedIconPath": "/img/sy_active.jpg"
},
{
"pagePath": "pages/classify/classify",
"text": "首页",
"iconPath": "/img/fl.jpg",
"selectedIconPath": "/img/fl_active.jpg"
}
]
}
底部分页栏
4.page.json:页面配置
页面中的配置选项回覆盖app.json中的windows中相同的配置选项
五、页面的生命周期(.js文件中)
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
生命周期示例
六、基本组件介绍
1.text组件
1 <view>
2 <!-- 1.基本使用 -->
3 <text>文本组件</text>
4 </view>
5 <view>
6 <!-- 2.selectable属性,文本是否可选。默认false -->
7 <text selectable="{{ture}}">文本可以被选择</text>
8 </view>
9 <view>
10 <!-- 3.spaces属性,显示连续空格 -->
11 <text space="enap">中文字 符空格一半大小</text>
12 <text space="emsp">中文字 符空格大小</text>
13 <text space="nbsp">根据字 体设置的空格大小</text>
14 </view>
15 <view>
16 <!-- 4.decode,是否解码,默认false -->
17 <text decode="{{ture}}">是否解码</text>
18 </view>
使用说明
2.button组件
<!-- 1.button的基本使用 -->
<button>这是个按钮</button>
<!-- 2.size属性, 建议使用mini-->
<button size="mini">mini属性的按钮</button>
<!-- 3.type属性 -->
<button size="mini" type="primary">primary属性的按钮</button>
<button size="mini" type="default">default属性的按钮</button>
<button size="mini" type="warn">warn属性的按钮</button>
<!-- 4.plain,镂空效果 -->
<button size="mini" plain>plain属性的按钮</button>
<!-- 5.disalbe:不可用 -->
<button size="mini" disalbe>disalbe属性的按钮</button>
使用说明
3.view组件
参考文档:https://developers.weixin.qq.com/miniprogram/dev/component/view.html
4.img组件
<!-- 1.基本使用
1.1组件有默认的大小320*240
1.2有一个行内块级元素(inline-bolck)
-->
<image></image>
<!-- scr属性,本地路径(相对路径/绝对路径)/ 远程地址 -->
<image src="/img/flk.jpg"></image>
<image src="网络地址"></image>
<!-- 相册中的图片 -->
<button bindtap="handleChooseAlbum">选中图片</button>
基本使用
data: {
imagePath:''
},
handleChooseAlbum(){
//系统API,让用户在相册中选择图片或拍照
wx.chooseImage({
success: (res) => {
//路径
const path = res.tempFilePaths[0]
this.setData({
imagePath : path
})
},
})
}
相册功能
参考文档:https://developers.weixin.qq.com/miniprogram/dev/component/image.html
5.input组件:输入框
参考文档:https://developers.weixin.qq.com/miniprogram/dev/component/input.html
6.scroll-view组件
<!-- 水平滚动 -->
<scroll-view class="container1" scroll-x>
<view wx:for="{{10}}" class=".item1">{{item}}</view>
</scroll-view> <!-- 垂直滚动 -->
<scroll-view class="container2" scroll-y>
<view wx:for="{{10}}" class=".item2">{{item}}</view>
</scroll-view>
设置方法wxml文件
/* 设置横向滑动 */
.contailner1{
background: purple;
white-space: nowrap;
}
.item1{
width: 100px;
height: 100px;
background: red;
margin: 10px;
display: inline-block;
} /* 设置竖向滑动 */
.contailner2{
background: orange;
height: 200px;
margin-top: 20px;
}
.item2{
height: 100px;
background: blue;
margin:10px;
}
样式设置方法wxss文件
参考文档:https://developers.weixin.qq.com/miniprogram/dev/component/scroll-view.html
七、共同属性
| 属性 | 描述 | 注释 |
| id | 组件的唯一标识 | 整个页面的唯一标识 |
| class | 组件的样式表 | 在对应的wxss中定义的样式表 |
| style | 组件的内联样式 | 可以动态设置内联样式 |
| hidden | 组件是否显示 | 所有组件默认显示 |
| data-* | 自定义属性 | 组件上触发的事件十,会发送给事件处理的函数 |
| bind*/cath* | 组件的事件 |
八、支持的选择器
九、wxss的尺寸单位
1.使用rpx,可根据屏幕宽度进行自适应,建议做布局设置以iPhone6为实例。
十、引入wxss文件的方法
@import '引入文件的路径';
十一、官方样式库
https://github.com/Tencent/weui-wxss
十二、must语法
1.引入变量 {{message}}
2.变量判断{{age >=18 ? '成年人' : '未成年人'}}
3.bloot变量判断<view class ='box {{isActive ? "active" : ""}}'>哈哈</view>
isActive : false
十三、条件判断
<!-- wx:if 的使用 -->
<view wx:if ="{{isShow}}">ha</view>
<!-- wx:else/wx:elif -->
<view wx:if="{{ score >= 90 }}">优秀</view>
<view wx:elif="{{ score >= 80 }}">l良好</view>
<view wx:elif="{{ score >= 60 }}">及格</view>
<view wx:else>及格</view>
代码实例
在某些情况下,我们需要使用wx:if或者wx:for是,可能需要包裹一组组件标签,这时候需要使用block标签,block不是组就按,仅用来包装元素
<view wx:for="{{movies}}">
<view>电影序号:{{index}}</view>
<view>电影名称:{{item}}</view>
</view>
<block wx:for="{{movies}}">
<view>电影序号:{{index}}</view>
<view>电影名称:{{item}}</view>
</block>
代码示例
item、index起名字
<view wx:for="{{movies}}" wx:for-item="movie1" wx:for-indexx="i" >{{movie1}}-{{i}}</view>
十四、模板的使用
<!-- 设置 -->
<template name="contenItem">
<button size='mini'>哈哈</button>
<view>哈哈1</view>
</template> <!-- 引用 ,-->
<template is="contenItem"/>
<!-- 引入文件 -->
<import scr="路径"/> <!-- 传参数 -->
<template is="contenItem" data="{{btntex:'a',content:'e'}}"/>
示例
十五、wxs
<!-- wxs的定义方式 -->
<wxs module="info">
// JS代码
var message = "hello word";
var name = "coderwhy"; var sum = function(num1,num2){
return num1 + num2
}
//模块数据导出
module.exports = {
message : message
name : name
sum : sum
} <!-- 导入方法 -->
<wxs src="路径" module="info"/> <!-- 引入方法 -->
<view>{{info.message}}</view>
<view>{{info.name}}</view>
<view>{{sum(20,30)}}</view>
示例
十六、常见的事件类型
input : bindinput bindblur bindfocus
scroll-view : bindscrolltowpper/bindscrolltolower
1.比较常见的事件类型
| 类型 | 触发条件 |
| touchstart | 手指触摸动作开始 |
| touchmove | 手指触摸后移动 |
| touchcancel | 手指触摸动作被打断 |
| touchend | 手指触摸动作结束 |
| tap | 手指触摸后马上离开 |
| longpress | 手指触摸后,超过350ms在离开,如果指定了事件回调函数,并触发这个事件,tap事件将不被触发 |
| longtap | 手指触摸后,超过350ms在离开 |
2.事件对象
| 属性 | 说明 |
| type | 事件类型 |
| timeStamp | 页面打开到触发事件所经过的毫秒数 |
| target | 触发事件的组件的一些属性值组合 |
| currentTarget | 当前组件的一些属性值集合 |
| detail | 额外的信息 |
| touches | 触摸事件,当前停留在屏幕中触摸点信息的数组 |
| changedTouches | 触摸事件,当前变化的触摸点信息的数组 |
3.事件冒泡和事件捕获
3.1 bind一层层传递
3.2 catch 阻止事件进一步传递
十九、自定义组件
自定义组件同样是由4个文件组成,建立一个公共的目录,使用自定义组件
1 <!-- 使用自定义组件,wxml文件中 -->
2 <my-cpn></my-cpn>
3 <!-- 在json文件中,注册组件 -->
4 {
5 "usingComponents": {
6 "my-cpn":"路径"
7 }
8 }
9 <!--组件中传递数据 -->
10 <!-- 在组件js文件中 -->
11 Component({
12 properties:{
13 title:{
14 type:String,
15 value:'默认值'
16 }
17 }
18 })
19 <!-- 在wxml文件中 -->
20 <my-cpn titile='哈哈'></my-cpn>
组件的使用方法
1.组件传递样式
Component({
externalClasses:['titileclass']
})
引用
组件传递内容
组件传递方法
组件修改数据
二十、插槽
插槽同样是4个文件组成,使用slot标签
<!-- 插槽的定义 -->
<view><slot name='slot1'></view>
<view><slot name='slot2'></view>
<view><slot name='slot3'></view>
槽的定义
同样插槽需要注册,才可以引用,注意需要在插槽的js文件中,引入下列内容
Component({
options:{
multipleSlots : true
}
})
插槽的js文件中引入
二十一、Component构造器
properties:定义传入的属性
data:定义内部属性
methods:定义方法
options:额外配置选项
externalClasses:引入外部样式
observers:属性和数据监听
pageLifetimes:页面生命周期
lefetimes:组件生命周期
二十二、网络请求
wx.request封装
二十三、展示弹窗API
showToast
showModal
showLoading
showActionSheet
Python_小程序的更多相关文章
- Python_小程序(云开发)
一.云开发API初始化 wx.cloud.init({ env:'test-x1dzi', //环境ID traceUser:true //是否在控制台查看用户信息 }) 二.云开发API初始化-服务 ...
- 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...
- 微信小程序开发心得
微信小程序也已出来有一段时间了,最近写了几款微信小程序项目,今天来说说感受. 首先开发一款微信小程序,最主要的就是针对于公司来运营的,因为,在申请appid(微信小程序ID号)时候,需要填写相关的公司 ...
- 微信应用号(小程序)开发IDE配置(第一篇)
2016年9月22日凌晨,微信宣布“小程序”问世,当然只是开始内测了,微信公众平台对200个服务号发送了小程序内测邀请.那么什么是“小程序”呢,来看微信之父怎么说 看完之后,相信大家大概都有些明白了吧 ...
- TODO:小程序开发过程之体验者
TODO:小程序开发过程之体验者 1. 小程序开发过程,先下载开发者并安装开发者工具,现在腾讯开放测试了,普通用户也可以登录开发者工具,如图普通用户登录为调试类型,但是只能建立无AppID的项目 如果 ...
- TODO:即将开发的第一个小程序
TODO:即将开发的第一个小程序 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验.个人理解小程序是寄宿在微信平台上的一个前端框架,具有跨平台功能, ...
- 微信小程序体验(2):驴妈妈景区门票即买即游
驴妈妈因为出色的运营能力,被腾讯选为首批小程序内测单位.驴妈妈的技术开发团队在很短的时间内完成了开发任务,并积极参与到张小龙团队的内测问题反馈.驴妈妈认为,移动互联网时代,微信是巨大的流量入口,也是旅 ...
- 微信小程序中利用时间选择器和js无计算实现定时器(将字符串或秒数转换成倒计时)
转载注明出处 改成了一个单独的js文件,并修改代码增加了通用性,点击这里查看 今天写小程序,有一个需求就是用户选择时间,然后我这边就要开始倒计时. 因为小程序的限制,所以直接选用时间选择器作为选择定时 ...
- 微信小程序(微信应用号)组件讲解
这篇文章主要讲解微信小程序的组件. 首先,讲解新建项目.现在有句话:招聘三天以上微信小程序开发,这个估计只能去挖微信的工程师了.技术新,既然讲解,那我们就从开始建项目讲解. 打开微信web开发者工具, ...
随机推荐
- mysql—if函数
在mysql中if()函数的具体语法如下:IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值. 开始实 ...
- 开发中经常使用到的Xcode快捷键
工欲善其事必先利其器. 有了这些快捷键加持,你写代码不仅很6而且还很好看. 这些快捷键都是平时使用频率非常高的,今天整理出来分享给大家了. 左缩进:Cmd + [ 右缩进:Cmd + ] 代码格式化/ ...
- 安装macosx10.13high serria
本教程所需资源下载链接: 链接:https://pan.baidu.com/s/1wGTezXz6zGvtlwpv6mMoSg 提取码:r6n9 安装VMware workstation 16.0,安 ...
- python工业互联网应用实战3—Django Admin列表
Django Admin笔者使用下来可以说是Django框架的开发利器,业务model构建完成后,我们就能快速的构建一个增删查改的后台管理框架.对于大量的企业管理业务开发来说,可以快速的构建一个可发布 ...
- uni-app请求uni.request封装使用
对uni.request的一些共同参数进行简单的封装,减少重复性数据请求代码.方便全局调用. 先在目录下创建 utils 和 common 这2个文件夹 utils 是存放工具类的,common 用来 ...
- 如何应对C语言内存泄露! 华为开发者社区 2020-09-29
如何应对C语言内存泄露! 华为开发者社区 2020-09-29
- Building a Robust Live Reloader with WebSockets and Go — Brandur Leach https://brandur.org/live-reload
Building a Robust Live Reloader with WebSockets and Go - Brandur Leach https://brandur.org/live-relo ...
- (Oracle)看懂Oracle执行计划(转载)
最近一直在跟Oracle打交道,从最初的一脸懵逼到现在的略有所知,也来总结一下自己最近所学,不定时更新ing- 一:什么是Oracle执行计划? 执行计划是一条查询语句在Oracle中的执行过程或访问 ...
- LOJ10021 Addition Chains
题目描述 原题来自:ZOJ 1937 已知一个数列 A0,A1,A2,A3,...,Am(其中A0=1,Am=n,A0<A1<A2<A3<...<Am ).对于每个 k, ...
- Grafana+Prometheus通过node_exporter监控Linux服务器信息
Grafana+Prometheus通过node_exporter监控Linux服务器信息 一.Grafana+Prometheus通过node_exporter监控Linux服务器信息 1.1nod ...