小程序开发笔记

  • 小程序开发
    • 一、小程序基础组件
    • 二、函数和事件
    • 三、变量
      • 变量声明与变量类型转换
      • 数组和对象
      • 内置对象
    • 四、数据绑定
    • 五、wxml页面渲染
    • 六、WXSS样式美化
    • 七、组件
    • 八、API
      • 1、授权登录
      • 2、生命周期

小程序开发

一、小程序基础组件

<view> </view><text> </text>//https://developers.weixin.qq.com/miniprogram/dev/component/input.html
//  type:text   文本输入键盘
// number   数字输入键盘
// idcard   身份证输入键盘
// digit    带小数点的数字键盘
// safe-password    密码安全输入键盘 指引
<input> </input>//https://developers.weixin.qq.com/miniprogram/dev/component/button.html
<button> </button>

二、函数和事件

函数

//函数的两种声明方式onLoad:function(){}onLoad(){}//函数的调用
test(){this.test2("csm")
},
test2(name){//日志打印console.log("I am",name)
}

可以根据日志打印的内容过滤日志:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KbpcakH1-1639656615061)(C:\Users\19783\AppData\Roaming\Typora\typora-user-images\image-20211213193722821.png)]

点击事件

//bindtap会执行后台的getValue函数
<text> bindtap="getValue"</text>//每当输入框值改变就会执行
<input bindinput="getInput"></input>

getInput(value){//输入用户输入的值console.log(value.detail.value)
}

三、变量

变量声明与变量类型转换

//声明 变量类型有:Number, String, Boolean, Undefined, Null
var value = 0
let value2 = 0 //用来声明局部变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效,而且有暂时性死区的约束//获取数据类型
console.log(typeof(value))//数据类型转换,转字符
var a = 1 + ""
var b = true + ""var c = 1
var str = c.toString()
var str2 = String(c)//其他类型转数值
var d = "2"
var n = Number(d)     //浮点,整数都可以转换
var f = parseFloat(d)
var i = parseInt(d)

数组和对象

//数组
var nums = [1,2,3]
var nums2 = new Array()
//长度
nums.length
//末尾添加元素
nums[3] = "test"
nums.push("test")
nums.push("aaa",4,5,6)
//在开头添加元素
nums.unshift(0)
//删除最后元素
nums.pop()
//删除开头元素
nums.shift()//对象
//第一种
var obj = {name:"bert",age:18,fun:function(){console.log("bert test");}
}//第二种
var obj2 = new Object();
obj2.name = "csm"
obj2.fun = function(){console.log("csm test")
}//第三种,构造函数,适用于批量创建对象
function Obj(name){this.name = name,this.fun = function(){console.log("xxc test")}
}
var obj3 = new Obj("xxc")
obj3.fun()

内置对象

参考文档 :MDN https://developer.mozilla.org/zh-CN/docs/Web/javaScript

//随机数 0 <= x < 1
Math.random()
Math.random()*(max - min) + minMath.round(x)
返回四舍五入后的整数
Math.ceil(x)
返回大于一个数的最小整数,即一个数向上取整后的值。
Math.floor(x)
返回小于一个数的最大整数,即一个数向下取整后的值
Math.pow(x, y)
返回一个数的 y 次幂。
Math.max([x[, y[, …]]])
返回零到多个数值中最大值。
Math.min([x[, y[, …]]])
返回零到多个数值中最小值。
Math.abs(x)
返回一个数的绝对值。//日期
var date = new Date()
var date2 = new Date(2021,12,14,19,29)
var date3 = new Date('2021-12-14 19:30:00')
var date4 = new Date(1000)//时间戳 ms//日期获取
var date = new Date()
var time = date.getTime()//时间戳
date.getFullYear()//获取nian
date.getMonth()
date.getHours()
date.getMinutes()
date.getSeconds()//数组
var arr = new Array()
console.log(arr instanceof Array)
console.log(Array.isArray(arr))//翻转数组
arr.reverse()
//排序数组,默认是转为字符串排序
arr.sort()//数值数组排序
arr.sort(function(a,b){return a-b //升序
})arr.indexOf(3) //返回3的第一个索引
arr.lastIndexOf(3) //返回3的最后一个索引arr.toString() //数组转字符串

四、数据绑定

<!-- 数据绑定的两种方式-->
<text>{{name}}</text>
<img src="{{src}}" />
Page({data:{name:"bert",src:"image/img1.png"},getInput(event){//不会实时显示this.data.name = "csm"//数据的动态绑定,实时显示this.setData({name:event.detail.value}) }
})//绑定全局变量
const app = getApp()app.globalData.name = "bert"

五、wxml页面渲染

<!-- 条件渲染-->
<text wx:if="{{age => 18}}"> 您满18,可以进网吧!</text>
<text wx:if="{{age < 18}}"> 您不满18,不可以进网吧!</text><text wx:if="{{cj >= 90}}">优秀</text>
<text wx:elif="{{cj>=60}}">及格</text>
<text wx:else="{{cj<60}}">不及格</text><!--循环渲染 list:[{name:"csm",wechat:"11111"},{name:"bert",wechat:"22222"}] -->
<view wx:for="{{list}}"><view>{{item.name}}</view><view>{{item.wechat}}</view>
</view>

六、WXSS样式美化

菜鸟教程:https://www.runoob.com/css/css-tutorial.html

颜色

background-color:#FFFFF;

文本

/*居中*/
text-align:center/*文本下划线*/
text-decoration:underline;/*字体*/
font-size:30px;

边距

padding:10px;
margin:10px;
border:1px solid red;
border-radius:10px;

适配问题

//px 与rpx的转换
//整个屏幕宽:750rpx,在iphone6下1px = 2rpx

flex布局:

display:flex;
flex-direction:column;
justify-content:center;  //水平
align-items:center;      //垂直

七、组件

图片:https://developers.weixin.qq.com/miniprogram/dev/component/image.html

//默认宽高:320px *240px
<image src="/images/picture.png" ></image>
//模式:
<image mode=""></image>
//懒加载
<image   lazy-load="true"></image>

视频:https://developers.weixin.qq.com/miniprogram/dev/component/video.html

<video    show-play-btn src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"></video>

轮播图:https://developers.weixin.qq.com/miniprogram/dev/component/swiper.html

<!-- 方法1 -->
<swiper indicator-dots indicator-active-color="blue" autoplay><swiper-item class="num1"><image class="img" src="https://img0.baidu.com/it/u=986567382,3731968355&fm=26&fmt=auto"></image></swiper-item><swiper-item class="num2"><image class="img" src="https://img0.baidu.com/it/u=599045285,3012701325&fm=26&fmt=auto"></image></swiper-item><swiper-item class="num3"><image class="img" src="https://img2.baidu.com/it/u=182878036,307711730&fm=253&fmt=auto&app=120&f=JPEG?w=724&h=439"></image></swiper-item>
</swiper><!-- 方法2 -->
<swiper indicator-dots indicator-active-color="blue" autoplay><swiper-item wx:for="{{imageList}}"><image class="img" src="{{item}}"></image></swiper-item>
</swiper>

TabBar:

页面切换,在app.js添加:

 "tabBar": {"custom": true,"color": "#000000","selectedColor": "#000000","backgroundColor": "#000000","list": [{"pagePath": "page/component/index","text": "组件","iconPath":"","selectedIconPath":""}, {"pagePath": "page/API/index","text": "接口","iconPath":"","selectedIconPath":""}]}

navigator页面跳转:https://developers.weixin.qq.com/miniprogram/dev/component/navigator.html

<navigator url="/page/navigate/navigate?title=navigate" open-type="redirect" hover-class="navigator-hover">跳转到新页面</navigator>
navigate 对应 wx.navigateTo 或 wx.navigateToMiniProgram 的功能
redirect 对应 wx.redirectTo 的功能
switchTab 对应 wx.switchTab 的功能
reLaunch 对应 wx.reLaunch 的功能 1.1.0
navigateBack 对应 wx.navigateBack 的功能 1.1.0
exit 退出小程序,target="miniProgram"时生效 2.1.0

API操作页面跳转:

//带数据的页面跳转
goNew(e){var title = e.currentTarget.dataset.titleurlnew = '/pages/detail?title='+titlewx.navigateTo({url:urlnew})
}<view wx:for="{{list}}">
<view class="item" bindtap="goNew" data-title="{{item}}">{{item}</view>
</view>//获取参数
onLoad(e){}

打开别的小程序:

wx.navigateToMiniProgram({appId:""
})

scroll-view:https://developers.weixin.qq.com/miniprogram/dev/component/scroll-view.html

<scroll-view>
内容区域
</scroll-view>
属性 类型 默认值 必填 说明 最低版本
scroll-x boolean false 允许横向滚动 1.0.0
scroll-y boolean false 允许纵向滚动 1.0.0
upper-threshold number/string 50 距顶部/左边多远时,触发 scrolltoupper 事件 1.0.0

八、API

1、授权登录

获取用户信息

 wx.getUserProfile({desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写success: (res) => {this.setData({userInfo: res.userInfo,hasUserInfo: true,imgPath:res.userInfo.avatarUrl})console.log("授权成功")},fail:(res)=>{console.log("授权失败")}})//如果写成success(res){ this.setData({})}会报错,不能用this,需要在外面定义var that = this

退出登录

unlogin(){this.setData({userInfo: null,hasUserInfo: false})wx.setStorageSync("user", null)  //清除缓存中的用户信息}

缓存用户信息:

wx.setStorageSync("user", res.userInfo)

取出缓存中的用户信息:

  onLoad: function (options) {var user = wx.getStorageSync('user')console.log(user)}

2、生命周期

页面生命周期:

https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html

属性 类型 默认值 必填 说明
data Object 页面的初始数据
options Object 页面的组件选项,同 Component 构造器 中的 options ,需要基础库版本 2.10.1
onLoad function 生命周期回调—监听页面加载
onShow function 生命周期回调—监听页面显示
onReady function 生命周期回调—监听页面初次渲染完成
onHide function 生命周期回调—监听页面隐藏
onUnload function 生命周期回调—监听页面卸载
onPullDownRefresh function 监听用户下拉动作
onReachBottom function 页面上拉触底事件的处理函数
onShareAppMessage function 用户点击右上角转发
onShareTimeline function 用户点击右上角转发到朋友圈
onAddToFavorites function 用户点击右上角收藏
onPageScroll function 页面滚动触发事件的处理函数
//分享小程序到朋友圈
onShareAppMessage:function(){return {title:"来自xxx的分享"}
},
onShareTimeline:function(){return {title:'分享xxx小程序到朋友圈'}
}

小程序生命周期:https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html

属性 类型 默认值 必填 说明 最低版本
onLaunch function 生命周期回调——监听小程序初始化。
onShow function 生命周期回调——监听小程序启动或切前台。
onHide function 生命周期回调——监听小程序切后台。

【微信小程序开发笔记】相关推荐

  1. 微信小程序开发笔记,你收藏了吗?

    ** 微信小程序开发笔记,你收藏了吗? ** 最近在开发微信小程序,把自己在项目中经常遇到的知识点记录下来,以便下次开发的时候查看. 开发小程序开发工具推荐vscode写代码,微信开发工具用于查看效果 ...

  2. 微信小程序开发笔记 进阶篇④——getPhoneNumber 获取用户手机号码(小程序云)

    文章目录 一.前言 二.前端代码wxml 三.前端代码js 四.云函数 五.程序流程 一.前言 微信小程序开发笔记--导读 大部分微信小程序开发者都会有这样的需求:获取小程序用户的手机号码. 但是,因 ...

  3. 微信小程序开发笔记 进阶篇⑤——getPhoneNumber 获取用户手机号码(基础库 2.21.2 之前)

    文章目录 一.前言 二.前端代码wxml 三.前端代码js 四.后端java 五.程序流程 六.参考 一.前言 微信小程序开发笔记--导读 大部分微信小程序开发者都会有这样的需求:获取小程序用户的手机 ...

  4. 微信小程序开发笔记二(WXSS和CSS样式美化)

    微信小程序开发笔记二(WXSS和CSS样式美化) 一.CSS基本知识 1.Class选择器的定义 2.ID选择器的定义 3.ID选择器和class选择器的区别 4.CSS中设置颜色 5.CSS中的文本 ...

  5. 微信小程序开发笔记——wsdchong

    微信小程序开发笔记 一.小程序简介 小程序起源于微信的webview:此类API最初是提供给腾讯内部一些业务使用,很多外部开发者发现后,照葫芦画瓢,逐渐成为微信中网页的事实标准.2015年初,微信发布 ...

  6. 微信小程序开发笔记 进阶篇③——onfire.js事件订阅和发布在微信小程序中的使用

    文章目录 一.前言 二.onfire.js介绍 三.API介绍 四.实例应用 五.onfire源码 六.实例源码 一.前言 微信小程序开发笔记--导读 二.onfire.js介绍 一个简单实用的事件订 ...

  7. 微信小程序开发笔记 进阶篇⑥——getPhoneNumber 获取用户手机号码(基础库 2.21.2 之后)

    文章目录 一.前言 二.前端代码wxml 三.前端代码js 四.后端java 五.程序流程 六.参考 一.前言 微信小程序开发笔记--导读 大部分微信小程序开发者都会有这样的需求:获取小程序用户的手机 ...

  8. 微信小程序开发笔记 支付篇②——微信小程序通过小程序云实现微信支付功能

    文章目录 一.前言 二.开通微信支付 2.1 关联商户号 2.2 添加商户号 2.3 管理员授权 三.云函数开发 3.1 新建云函数 3.2 云函数代码 3.3 云函数上传并部署 四.小程序调用 4. ...

  9. 微信小程序开发笔记(1.1)滚动选择器picker的使用

    微信小程序开发笔记(1.1)滚动选择器picker的使用 前言 滚动选择器picker 普通选择器 多列选择器 时间选择器 日期选择器 省市区选择器 前言 最近被拉来做小程序,因为时间比较赶,其他方面 ...

  10. 微信小程序开发笔记—设置页面密码

    文章目录 一.功能概述 二.实现效果 三.实现方法 1.新建个人登陆页面 2.设计密码获取判别函数和响应函数 1)定义变量 2)设计密码获取判别函数 3)设计响应函数 3.设计页面内容 1)input ...

最新文章

  1. 企业级nosql数据库应用与实战-redis
  2. 摩天轮社区_看房日记:难得!宜宾,又来一楼盘!一线江景+公园+学校,还有小户型、摩天轮...
  3. ASP.NET Core 发布至Linux生产环境 Ubuntu 系统
  4. Delphi替换PE图标资源
  5. c 解析java byte,深入解析Java编程中面向字节流的一些应用
  6. matlab没有int函数,matlab 未定义与 'char' 类型的输入参数相对应的函数 'int'。
  7. 窗口最小化消息的解决之道
  8. 键盘事件与JS Filter
  9. php redius,Linux下Redius的安装与部署详解
  10. 卡巴斯基最新激活码、授权文件,可用卡巴斯基
  11. Redis(1)——NoSQL数据库简介
  12. 谷歌chrome 71 flash 添加问题的解决方案(chrome禁用添加允许flash的选项)
  13. windows”出现身份验证错误,要求的函数不正确“的解决方法
  14. 非视线成像:基于飞秒摄影技术
  15. 平台级SAAS架构——统一身份管理系统
  16. R语言错误 --> Error in plot.new() : figure margins too large
  17. 智能汽车操作系统哪家强?黑莓QNX领跑,中兴/华为撑起中国方案
  18. 二进制 Kubernetes 查看证书过期时间
  19. Java使用Itext5与html模板生成pdf并支持下载
  20. OverlayScrollbars插件监听滚动条的用法

热门文章

  1. shell 调用securecrt_securecrt导入xshell 解决xshell、SecureCRT中文乱码 - Linux - 服务器之家...
  2. putextra 传递对象_intent.putextra用法 使用Intent传递对象的两种方式 - 电脑常识 - 服务器之家...
  3. 迪赛智慧数——柱状图(堆叠柱状图):各年龄段人群服装消费频次
  4. 刚刚,我顺藤摸瓜端了知名色情网站的老窝,并劝他从良
  5. 模拟和数字电路 —— 导学篇
  6. 人工学院2卡顿_人工学院2玩着玩着很卡 | 手游网游页游攻略大全
  7. 【STM32F429】第8章 学习USB协议栈前要了解的基础知识
  8. Google Music
  9. 计算机学院院长寄语,院长寄语-欢迎访问北京农学院动物科学技术学院
  10. OSChina 周五乱弹 ——我想对喷子说,别停下你探索的脚步!