微信小程序

微信可以理解为一个品牌,小程序就是微信的一个子产品
微信开放平台就是给开发者提供技术支持的网站
小程序开发并不是前端的专利!!也提供了其他语言相关的API
小程序注册:
	https://mp.weixin.qq.com/wxopen/waregister?action=step1
每个邮箱只能注册一个小程序账号,公众号账号和小程序账号不通
小程序的相关信息的变动次数和一些敏感信息是有限制的
小程序的名字唯一
微信开发者工具是微信给我提供开发相关产品的编辑器,集成了模拟器、编辑器、调试器、脚手架
小程序开发文档:
	https://developers.weixin.qq.com/miniprogram/dev/framework/
预览仅仅只能在自己的手机上看,发布后别人才能看到
开平台的开发菜单中的开发设置面板中可以看到AppID(前提是小程序的基本信息已经填写ok了),不能发布多个小程序,但是可以在开发阶段创建多个本地项目
小程序文件后缀
	.js,写JS的
	.wxml,写结构
	.wxss,写样式的
	.json,写配置
		全局
		页面(优先级高于全局)
	同名的文件会被自动加载,捆绑解析
小程序的头部导航和底部tabBar都是通过配置搞出来的,并不是自己通过html写出来的
	BUG:tabBar的pagePath选项如果相同,在模拟器里可以显示,但是在手机上预览时显示不出来
小程序内置标签(组件)
	swiper:轮播图组件
	swiper-item:轮播图子项
	image:图片
	页面中有一个默认page标签,相当于网页中的body,wxml文件中不存在page标签
	a标签用什么代替?navigator
	div标签用什么代替?view
	span标签用什么代替?text
小程序的屏幕适配
	我们一般使用内置的rpx作为计量单位
	不管什么尺寸的屏幕,小程序都会将其划分为750份,每一份就是1rpx
swiper有一个默认的高度,150px,固定死的,没有做适配
小程序打包后最多2M
	可以在project.config.json项目配置文件中的packOptions.ignore配置打包忽略的文件清单
		文件夹:folder
		文件:file
		后缀:suffix
		前缀:prefix
		正则:regexp
		迷你正则:glob
发布流程
	开发
	点”上传“按钮
	在控制台中将开发版选为体验版
	提交审核
wxss中不支持本地图片,仅支持网络和base64图片,但是不建议使用base64,因为会导致代码体积过大(最大2M)
tabBar配置中的icon图片不支持网络图片
字体图标的使用
wxss中的@import不支持网络路径
*.js 文件的 必须调用 Page() 函数,并且必须传递一个对象作为参数
数据定义在 data 对象中,可以直接使用 {{ msg }} 访问 data 对象中的数据
{{ 这里可以写一些简单的运算 }}
在wxml中,无论何时,只要访问data中的数据,就需要加{{ ... }}
列表渲染,wx:for="{{ list }}"
	默认的循环项变量是item,循环索引变量是index
	可以使用wx:for-item=”v“,指定循环项变量
	可以使用wx:for-index="i",指定循环索引变量
	可以使用wx:key="id"或者wx:key="*this",绑定唯一值,只要保证兄弟元素之间唯一即可
		id为循环项中的属性名
		*this就是当前循环项,仅在循环项为字符串或数字时使用
条件渲染
	wx:if
	wx:elif
	wx:else
block标签,类似于vue中的template
在小程序的开发工具中创建的页面会自动添加到app.json的pages配置中,pages配置的第一个页面是默认启动页
事件绑定
	bind事件类型="事件回调函数的名称"
	bind:事件类型="事件回调函数的名称"
	事件回调是与data选项同级,不用定义到methods里面
	小程序中点击事件用的是tap,没有300ms延迟
app.json中的style:"v2"配置是主题配置,如果应用了这个配置,低版本需要做兼容处理
	如果我们使用了其他的UI组件库,建议把这个style: "v2"配置给去掉
事件回调中的第一个形参就可以接收到事件对象,模板不用动
变更数据的方法:this.setData({ ... }),是补丁更新,并不是整个对象,视图层不是实时更新的
小程序中木有DOM API 和 BOM API
	https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart/#%E5%B0%8F%E7%A8%8B%E5%BA%8F%E4%B8%8E%E6%99%AE%E9%80%9A%E7%BD%91%E9%A1%B5%E5%BC%80%E5%8F%91%E7%9A%84%E5%8C%BA%E5%88%AB
小程序中没有XMLHttpRequest,那么 axios和 $.ajax 都不能用
使用wx.request({ url, method, data, success, fail })发请求
	url必须添加到地址白名单中
	url必须备案,不能使用IP,必须支持https
	在本地开发时,可以使用工具禁用白名单验证
要会灵活使用自定义属性来做标记,data-xxx,标记后,可以通过事件对象e.target.dataset获取
标签属性hidden和vue中的v-show类似
onLoad相当于vue里面的created钩子
小程序中通过bind绑定的事件存在事件冒泡,通过catch绑定的事件不存在
bind绑定的事件,默认是在冒泡触发,如果想要在捕获阶段触发,可以使用capture-bind,但是还是穿透,如果想要阻止捕获,可以使用capture-catch
小程序中添加一个互斥事件的概念,通过mut-bind绑定,在一个事件流中,只会触发一次
重点了解 bind 和 catch 即可
app.js文件中必须调用App函数,并且传入一个对象作为参数
生命周期有两种类型
	小程序级别
		启动时:onLaunch
			在小程序整个生命周期(从打开至关闭)只会执行一次
		前台运行:onShow
		后台运行:onHide
		只能抓运行时出错:onError
			程序的错误分为两种
				编译时错误
				运行时错误
			就算进入了这个钩子,小程序还是可以正常运行,不会挂掉
		小程序启动时,页面找不到时:onPageNotFound
			运行时,页面找不到,不会进入这个钩子
	页面级别
		onLoad,相当于vue的created
			有缓存,小程序被关闭前只会执行一次
		onShow
		onReady,相当于vue的mounted
			有缓存,小程序被关闭前只会执行一次
		onHide
		如果页面中的数据需要每次进入页面时更新,请求要放在onShow钩子里
小程序没有主动正常关闭的入口
	为何这样设计?提高用户体验
	右上角的圆圈按钮并不是关闭按钮,仅仅只是让小程序后台运行
	微信自己来管理小程序的关闭
		长时间后台运行
		手机性能不足
小程序的场景值就是用来区分不同进入方式的值(数字)
	可以在小程序级别的onLaunch和onShow钩子的第一个参数的scene属性获取场景值
	应用场景:老板要你统计从那种方式进入咱们小程序的人最多
在navigator跳转url时,encoded参数(?name=zs&age=18),可以通过页面级别的onLoad钩子的第一个参数获取(对象类型),不用解析转换
小程序也支持模块化,就是Node的CommonJS规范,用require导入,用module.exports导出
小程序中不可以直接使用npm安装的第三方模块,需要使用开发者工具构建一下生成出miniprograme_npm这个文件夹,才可使用
	需要有package.json文件和node_modules文件夹,才能构建成功
	require的优先级:本地模块高于miniprograme_npm
		启示:我们在给知识点下结论时,一定要反复验证再确认,因为如果结论是错的,会一直错下去
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值