微信小程序是什么
微信小程序写的不多,随便写写
创建项目,分析工具
微信小程序有专门的编辑工具,去官网下载
然后申请一个小程序项目,获得一个appId,然后进入编辑工具就可以直接开发了
编辑工具可以设置es6编译和npm
文件分析
小程序的写法非常的像vue-cli,但是vue是一个vue文件带有html+js+css
小程序是一个页面分为四个文件,wxml+js+wxss+json(配置页面)
还有一个app.json总配置页面,一个app.js入口文件,一个app.wxss的全局css文件
新建页面
- 在目录树上右键,选择新建 Page,将自动生成页面所需要的 wxml、wxss、js、json
- 在 app.json 的 pages 字段,添加需要新建的页面的路径,将会自动生成该页面所需要的文件
app.json
- 页面要被识别必须配置在app.json的page数组里,数组的第一个就是打开小程序的第一个页面,这个page数组就是vue的router.js
- 小程序的底部菜单tabbar栏也是在这个文件里配置的,可以配置文字,图标,被选中的图标,点击的路由
- 还有个window的对象是配置小程序的顶部颜色什么的,这个文件很重要,配置查看官方文档
app.js
入口文件就是main.js,用来配置插件什么的,还有就是在入口文件的生命周期里执行用户登陆,获取用户信息什么的
wxss
wxss的图片引入需使用外链地址;
没有 Body;
样式可直接使用 import 导入;
字体宽高用vw和vh最好
生命周期
onLaunch: function(options) {
// 监听小程序初始化。小程序初始化完成时(全局只触发一次)
},
onReady: function(options) {
// 页面初次渲染完成
// 一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。
},
onShow: function(options) {
// 监听小程序显示。小程序启动,或从后台进入前台显示时,执行很多次
},
onHide: function() {
// 监听小程序隐藏。小程序从前台进入后台时。
},
onUnload: function() {
// 当redirectTo或navigateBack的时候调用。
// Do something when page close.
},
onPullDownRefresh: function() {
// 监听用户下拉动作
// 需要在页面json里配置 "enablePullDownRefresh": true
},
onReachBottom: function() {
// 页面上拉触底事件的处理函数
// 需要在页面json里配置 "enablePullDownRefresh": true
},
onShareAppMessage: function () {
// 用户点击右上角转发
},
onPageScroll: function() {
// 页面滚动触发事件的处理函数
},
onResize: function() {
// 页面尺寸改变时触发
},
onTabItemTap(item) {
// 当前是 tab 页时,点击 tab 时触发
console.log(item.index)
console.log(item.pagePath)
console.log(item.text)
},
渲染
// 数据绑定
<checkbox checked="{{xx}}"
id="item-{{id}}"
hidden="{{flag ? true : false}}">{{ name }}</checkbox>
// 条件渲染
<view wx:if="{{length > 5}}"> 1 </view>
<view wx:elif="{{length > 2}}"> 2 </view>
<view wx:else> 3 </view>
// 循环渲染
<view wx:for="{{array}}" wx:for-index="idx" wx:for-item="item" wx:key="idx">
{{idx}}: {{item.name}}
</view>
组件
小程序的组件就是指html的标签,不过是内部的标签,微信对标签进行了封装,自带了像轮播图,图标icon组件,还有地图,画布,摄像头等等东西,让开发便捷了很多
小程序里没有div,view组件就是div
API
微信内置的方法,有登陆的,转格式的,上传文件的,发起请求的,路由跳转的,定时器,websocket,地图的,获取位置的,选择相册图片,视频,音频,画布,录音,相机,富文本,支付,扫码甚至微信运动,蓝牙,NFC充值,卡包,手机电量,陀螺仪,移动方向等等
请求响应
小程序也是用的跨域接口,需要在微信小程序后台配置接口白名单,配置后就可以访问了,必须是域名的,不能是localhost或者ip地址
数据传递
- 在app.js里有个全局数据对象
globalData:{
userInfo:null
}
// 获取
var app=getApp();//取得全局App({..})实例
var userInfo = app.globalData.userInfo;//取得全局变量需要的值
// 获取data的值
var xx = this.data.xx
- 通过本地缓存,setStorage和getStorage
- 通过路由传参
wx.navigateTo({
url: '/pages/item/item?url=' + e.target.dataset.url
})
onLoad: function (options) {
var that = this;
console.log(options.url)
}
- 从标签上获取data值
<view bindtap="play" data-xx="xx"></view>
play:function(event){
var xx= event.currentTarget.dataset.xx;
}
路由跳转
- navigateTo 保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层。
- redirectTo 关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。
- reLaunch 关闭所有页面,打开到应用内的某个页面
- switchTab 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
接入资源
腾讯自己家的东西都带有小程序接入的功能
比如腾讯地图
比如腾讯视频
具体查看文档
内置组件
其实也不是内置,也需要自己下载
就是weui-weapp,在微信小程序官方文档的拓展能力里有如何使用的教程
外来组件
vant-weapp
通过npm下载安装就行,用一些弹窗什么的很爽
小程序框架
- 美团点评:mpvue
- 京东:Taro
- 腾讯:WePY
总结:京东的是 React 方式编码,其他多数是vue方式。不考虑框架
发布
代码写完,可以直接在开发工具里提交,然后等待微信工作人员审核,审核完毕可以就可以去到微信小程序后台点击发布,就可以在手机微信里找到这个小程序了
最后总结
小程序只要js基础好,写过vue,上手非常的快,特别是在微信平台上开发,兼容等问题就很少了,而且API特别的多,去看官网就知道,真正的copy型程序员诞生之路
app.js
App({
onLaunch: function () {
//调用API从本地缓存中获取数据
var logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
},
getUserInfo:function(cb){
var that = this
if(this.globalData.userInfo){
typeof cb == "function" && cb(this.globalData.userInfo)
}else{
//调用登录接口
wx.login({
success: function () {
wx.getUserInfo({
success: function (res) {
that.globalData.userInfo = res.userInfo
typeof cb == "function" && cb(that.globalData.userInfo)
}
})
}
})
}
},
globalData:{
userInfo:null
}
})
有时间补充个自定义组件
微信小程序是什么的更多相关文章
- 微信小程序开发心得
微信小程序也已出来有一段时间了,最近写了几款微信小程序项目,今天来说说感受. 首先开发一款微信小程序,最主要的就是针对于公司来运营的,因为,在申请appid(微信小程序ID号)时候,需要填写相关的公司 ...
- 微信小程序体验(2):驴妈妈景区门票即买即游
驴妈妈因为出色的运营能力,被腾讯选为首批小程序内测单位.驴妈妈的技术开发团队在很短的时间内完成了开发任务,并积极参与到张小龙团队的内测问题反馈.驴妈妈认为,移动互联网时代,微信是巨大的流量入口,也是旅 ...
- 微信小程序(微信应用号)组件讲解
这篇文章主要讲解微信小程序的组件. 首先,讲解新建项目.现在有句话:招聘三天以上微信小程序开发,这个估计只能去挖微信的工程师了.技术新,既然讲解,那我们就从开始建项目讲解. 打开微信web开发者工具, ...
- 神技!微信小程序(应用号)抢先入门教程(附最新案例DEMO-豆瓣电影)持续更新
微信小程序 Demo(豆瓣电影) 由于时间的关系,没有办法写一个完整的说明,后续配合一些视频资料,请持续关注 官方文档:https://mp.weixin.qq.com/debug/wxadoc/de ...
- 通过微信小程序看前端
前言 2016年9月22日凌晨,微信官方通过“微信公开课”公众号发布了关于微信小程序(微信应用号)的内测通知.整个朋友圈瞬间便像炸开了锅似的,各种揣测.介绍性文章在一夜里诞生.而真正收到内测邀请的公众 ...
- 快速了解微信小程序的使用,一个根据小程序的框架开发的todos app
微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...
- 来自于微信小程序的一封简讯
9月21晚间,微信向部分公众号发出公众平台-微信应用号(小程序)的内测邀请,向来较为低调的微信在这一晚没人再忽视它了. 来自个人博客:Damonare的个人博客 一夜之间火了的微信应用号你真的知道吗? ...
- 微信小程序前端源码逻辑和工作流
看完微信小程序的前端代码真的让我热血沸腾啊,代码逻辑和设计一目了然,没有多余的东西,真的是大道至简. 废话不多说,直接分析前端代码.个人观点,难免有疏漏,仅供参考. 文件基本结构: 先看入口app.j ...
- 微信小程序初探
做为码农相信大家最近肯定都会听到微信小程序,虽然现阶段还没有正式开放注册,但大家可以还是可以开发测试. 到微信的WIKI(http://mp.weixin.qq.com/wiki?t=resource ...
- 【微信小程序开发】之如何获取免费ssl证书【图文步骤】
微信小程序要求所有网络请求都走ssl加密,因此我们开发服务端接口需要配置为https 这篇文章介绍一下如何 在 startssl 申请一个免费的ca证书. 1. 打开网站 https://www.s ...
随机推荐
- 云账房获取2.76亿元D轮投资
财税管理SaaS服务商云帐房 南京云帐房网络科技有限公司正式成立于2015年3月,法定代表人为薛兴华. 2015年获得600万人民币天使轮融资,投资方为AA投资: 2016年5月份完成数千万人民币A轮 ...
- JS - 处理浏览器兼容之 event
function test(e){ var event = e || windows.event // IE : windows.event ,非IE : e }
- SpringBoot之数据访问和事务-专题三
SpringBoot之数据访问和事务-专题三 四.数据访问 4.1.springboot整合使用JdbcTemplate 4.1.1 pom文件引入 <parent> <groupI ...
- OBST(最优二叉搜索树)
简述一下问题:假设有一颗词典二叉树,我们从中查找需要的单词,使用红黑树或平衡树这样的数据结构总是可以在O(lgN)时间内进行查找,但单词的出现频率是不同的,我们给每个单词加上一个搜索概率,然后通过这些 ...
- JS回弹原理-高级
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 143、Java内部类之访问方法中定义的参数或变量
01.代码如下: package TIANPAN; class Outer { // 外部类 private String msg = "Hello World !"; publi ...
- 129、Java面向对象之static关键字一(修改static变量)
01.代码如下: package TIANPAN; class Book { // 描述的是同一个出版社的信息 private String title; // 普通属性 private double ...
- 设计模式---JDK动态代理和CGLIB代理
Cglig代理设计模式 /*测试类*/ package cglibProxy; import org.junit.Test; public class TestCglib { @Test public ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:"text-danger" 类的文本样式
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Linux--add the PPA to your system
Add a PPA to your system with a single line in your terminal step1:on the PPA's overview page,look f ...