主要为了拿到AppID(小程序ID)
下载微信开发者工具(安装一直下一步即可)
.json 是配置信息
pages 为页面 ,windows为配置属性信息,tabbar配置导航条
.wxml 是html结构
.wxss 是css样式
.js 是逻辑
珠峰课堂
小程序配置官方文档:全局配置 | 微信开放文档
app.json中的配置信息:
- {
- "pages": [
- "pages/index/index",
- "pages/logs/logs"
- ],
- "window": {
- "backgroundTextStyle": "light",
- "navigationBarBackgroundColor": "#fff",
- "navigationBarTitleText": "123",
- "navigationBarTextStyle": "black"
- },
- "tabBar": {
- "color": "#333",
- "selectedColor": "#71d4cb",
- "borderStyle": "black",
- "list": [{
- "pagePath": "pages/index/index",
- "text": "首页",
- "iconPath": "img/爱心.png",
- "selectedIconPath": "img/成功.png"
- },
- {
- "pagePath": "pages/logs/logs",
- "text": "日志",
- "iconPath": "img/爱心.png",
- "selectedIconPath": "img/成功.png"
- }
- ]
- },
- "style": "v2",
- "sitemapLocation": "sitemap.json"
- }
框架->框架接口->小程序->App
属性 | 类型 | 默认值 | 必填 | 说明 | |
---|---|---|---|---|---|
onLaunch | function | 否 | 生命周期回调——监听小程序初始化。 | ||
onShow | function | 否 | 生命周期回调——监听小程序启动或切前台。 | ||
onHide | function | 否 | 生命周期回调——监听小程序切后台。 | ||
onError | function | 否 | 错误监听函数。 | ||
onPageNotFound | function | 否 | 页面不存在监听函数。 | 1.9.90 | |
onUnhandledRejection | function | 否 | 未处理的 Promise 拒绝事件监听函数。 | 2.10.0 | |
onThemeChange | function | 否 | 监听系统主题变化 | 2.11.0 | |
其他 | any | 否 | 开发者可以添加任意的函数或数据变量到 Object 参数中,用 this 可以访问 |
|
框架->框架接口->小程序->getApp
getApp可以拿到实例
组件官方文档 视图容器 | 微信开放文档
在小程序中单位使用rpx,1 rpx相当于1 px的一半 基础语法官方文档:数据绑定 | 微信开放文档 bind存在事件冒泡, catch不存在事件冒泡 路由官方链接: wx.navigateTo(Object object) | 微信开放文档 全局事件: API->界面 wx.showModal(Object object) | 微信开放文档 参考:在定义的方法中粘贴过来官网复制的代码 小程序接口(ajax): wx:request API->网络 ajax请求官方文档地址: 自己编写的后台 小程序: 返回结果: 第一步:在component 里新建demo组件 ,demo.json中的component为true 第二步: 在index.json中使用,usingComponents demo为自定义的名字 值为路径 第三步: 最后在index.wxml中当标签使用: 第一步: 这里给demo 组件传递一个a 的值是123 第二步:在demo.js中的 properties 对象中 设置传递过来的a 的类型(type)和默认值(value) 第三步:在demo.wxml中用 双大括号语法使用a 第一步:自定义方法,使用bind绑定一个自定义的方法值为在js文件中定义的方法(这里是father),并且可以接受子组件传过来的参数(这里为b) 第二步:在子组件中编写一个方法来触发父组件传递过来的方法 使用 this.gritterEvent方法来接收自定义事件,和向父组件传参 触发顺序:先触发 onLaunch ->onShow-> oninit->onLoad->onShow->onReady 监听事件的生命周期 setData getApp wx:request(类似于jquery的写法) 简单封装: wx.chooseMedia(Object object) | 微信开放文档 (qq.com) SelectorQuery | 微信开放文档 (qq.com) wx.createSelectorQuery() 2017年1月9日0点小程序发布 。( 作者: 张小龙 ) 小程序刚发布体积不能超过1M,2017年4月做了改进,1M变为2M 1.同App进行互补,提供同app类型的功能,比app使用方便简介 2.通过扫一扫或者在微信搜索即可下载 3. 用户频率不高,但又不得不用的功能软件,目前看来小程序是首选 4.连接线上线下 5.开发门槛低, 成本低 1.官方网站:https://developers.weixin.qq.com/miniprogram/dev/framework/ 2.微信开发工具:稳定版 Stable Build 更新日志 | 微信开放文档 3.小程序注册,在官方注册:小程序 小程序发布 1.flex布局 flex 布局的基本概念 - CSS(层叠样式表) | MDN 2.移动端相关知识 物理像素:屏幕的分辨率 设备独立像素&css独立像素: 虚拟像素,比方说css像素 dpr比&DPI&PPI: dpr:设备像素比,物理像素 / 设备独立像素 = dpr, 一般以iPhone的dpr为准 dpr=2 PPI:一英寸显示屏上的像素点个数 DPI:最早指的是打印机在单位面积上打印的墨点数,墨点越多越清晰 3.移动端适配 viewport适配 1. 为什么做viewport适配 手机厂商在生产手机的时候大部分手机默认页面宽度为980px 手机实际视口宽度都要小于980px, 如:iPhone6为365px 开发需求:需要将980的页面完全显示在手机屏幕上且没有滚动条 2. 实现: rem适配 1. 为什么做rem适配 机型太多,不同机型屏幕大小不一致 需求:一套设计稿的内容在不同的机型上呈现的效果一致,根据屏幕大小不同的变化,页面中的内容也相应的变化 2.实现: let clientWidth= document.documentElement.clientWidth } window.addEventListener('pageshow',() => { remRefresh() // 函数防抖 let timeoutId 3. 第三方库 lib-flexible + px2rem-loader 4. 扩展内容 视网膜屏幕是分辨率超过人眼识别极限的高分辨率屏幕,由苹果公司在2010年在iPhone4发布会上首次退出营销术语 IPhone4的dpr =2 ;人类肉眼分辨率的极限 问题: iPhone6 的dpr为多少? iPhone6Pluse 比 iPhone显示图像清晰吗? 5.1.小程序特点概述 1. 没有DOM(什么是DOM,为什么要有DOM,DOM作用是什么?) 2.组件化开发 3.体积小,单个压缩包体积不能超过2M,否则无法上线 4.小程序的四个重要的文件(每个页面都有) *.js *.wxml --> view结构 --> html *.wxss --> view样式 --> css *.json --> view数据 -->json文件 --主要是做配置 5. 小程序适配方案:rpx(responseve pixel响应式像素单位) width:2rpx = 1px 小程序适配单位: rpx 规定屏幕宽度为 750rpx iPhone6 下:1rpx = 1物理像素 =0.5css 5.2 小程序配置 全局配置: app.json 页面配置: 页面名称.json
// Page(对象) Page--函数 ---函数调用 Page--函数对象 // Page(配置对象) 调用表示的是什么意思 // 注册小程序中的一个页面。接受一个 Object 类型参数,其指定页面的初始数据、生命周期回调、事件处理函数等 // 产生了一个页面的实例对象,
// onLoad: function (options) { // 想要访问msg属性的值 // this----当前这个页面的实例对象 // 因为this中没有msg,js本身一门动态类型的语言,对象中没有这个属性,点了,该对象中就有了msg这个属性,但是msg从来赋值,又根据原型的技术,来进行查找,仍然没有找到,所以结果是undefined // console.log(this.msg) // undefined // console.log(this.data.msg) // 有结果 // 结论:小程序中没有数据代理,vue中有数据代理
冒泡事件和非冒泡事件 wx.navigateTo(Object object) | 微信开放文档
页面的生命周期 5个 onLoad 监听页面加载--页面创建的时候触发 onShow 监听页面显示 --页面出现在前台时触发 默认会执行一次, 页面由隐藏到显示的时候 onReady 监听页面初次渲染完成--页面已经画完了 onHide 如果页面隐藏 onUnload 页面卸载 wx.getUserProfile() wx.getUserProfile(Object object) | 微信开放文档
单行文本溢出和多行文本溢出 小程序中封装组件: 缓动效果: 操作css样式,使用js表达式的形式在data中定义,在事件中执行 js部分
6.基本用法
7.事件
8.常用全局函数及ajax请求
刘琪老师
小程序基本配置及常用组件
自定义组件及传参
组件注册(这里已demo举例):
父传子,传参举例(和vue类似):
子组件给父组件传参:
生命周期
常用API:
页面跳转:
request请求:
消息提示框:
小程序里的数据缓存:
从手机相册中上传视频或图片:
在小程序中获取元素:
小米有品项目实战:
向程序常用框架:
创建项目:
尚硅谷(微信小程序)
一、小程序
二、小程序的作用
三、小程序开发资料
四、小程序知识储备
function remRefresh () {
// 将屏幕等分10份
let rem = clientWidth / 10;
document.documentElement.style.fontSize= rem + 'px'
document.body.style.fontSize='12px'
})
window.addEventListener('resize',()=>{
timeoutId &&clearTimeout( timeoutId )
timeoutId = setTImeout(()=>{
remRefresh()
},300)
})五、小程序配置
数据代理:通过一个对象访问另一个对象的数据
小程序中的事件:
路由跳转↑
页面的生命周期
获取用户信息
网易云项目(小程序)