快速开始小程序

小程序开发工具准备

1.申请小程序账号(appid)

https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart/getstart.html#%E7%94%B3%E8%AF%B7%E5%B8%90%E5%8F%B7

2.下载并安装微信开发者工具

https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart/getstart.html#%E5%AE%89%E8%A3%85%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7
3.添加小程序信息(不使用云服务)

小程序工具介绍

1.开发工具介绍
创建pages介绍
代码区域F1显示快捷键
清缓存按钮
小程序保存自动编译
断点调试  source->js[sm]->点断点
2.小程序后台管理介绍
3.小程序文档介绍 https://developers.weixin.qq.com/miniprogram/dev/framework/

小程序发布流程

1.使用小程序账号密码,在微信公众号平台登录。
2.基本信息设置完毕后,打开微信开发工具,点击右上角【上传】功能,点击上传提示窗口中输入版本号和说明即可。
3.上传完毕后,到微信公众号后台,点击左侧菜单中的【版本管理】。
4.浏览器拉到底部,找到【开发版本】就能显示刚才提交的小程序版本,点击右侧按钮【提交审核】。注意:只有管理员才能提交
5.提交完毕后,【审核版本】中显示【审核中】,耐心等待即可,审核通过微信会有提示,后台也有消息提示,现在审核时间挺快的。
6.如果审核通过后,点击提交发布,线上版本就会显示当前提交版本,这是微信小程序中过几分钟就可以搜索到发布的小程序了。
以上就发布完小程序了,在设置中可以下载小程序二维码进行扫描登陆,或者名称搜索都可以。

小程序基本使用(常用必会)

wxml特性

WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件事件系统,可以构建出页面的结构

数据绑定

<!--wxml-->
<view> {{message}} </view>
// page.js
Page({
  data: {
    message: 'Hello MINA!'
  }
})

<!--wxml-->
<view hidden=“{{flay ? true : false}}”>
	Hidden
</view>
// page.js
Page({
  data: {
    flag: false
  }
})

列表渲染

<!--wxml-->
<view wx:for="{{array}}" wx:for-item="item" wx:key="index"> {{index}}:{{item.name}} </view>
// page.js
Page({
  data: {
    array: [
		{ name: "商品A" },
		{ name: "商品B" },
		{ name: "商品C" }
	]
  }
})

条件渲染

<!--wxml-->
<view wx:if="{{view === 1}}"> 郭超1 </view>
<view wx:elif="{{view === 2}}"> 郭超2 </view>
<view wx:else> 郭超3 </view>
// page.js
Page({
  data: {
    view: Math.floor(Math.random()*3+1)
  }
})

模板

WXML提供模板(template),可以在模板中定义代码片段,然后在不同的地方调用。

定义模板

使用 name 属性,作为模板的名字。然后在 内定义代码片段,如:

<!--index1.wxml-->
<template name="staffName">
  <view>
    <view>收件人:{{name}}</view>
    <view>联系方式:{{phone}}</view>
    <view>地址:{{address}}</view>
  </view>
</template>

<!--index.wxml 引入template组件内内容-->
<import src="index1.wxml"></import> 
<!--<include src="index1.wxml"></include> 引入整体文件-->
<template is="staffName" data="{{...item}}"></template>
// index.js
Page({
  data: {
    item: {
		name: "郭超",
		phone: '15311697002',
		address: '山西'
	}
  }
})

wxss特性

WXSS (WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式。

WXSS 用来决定 WXML 的组件应该怎么显示。

为了适应广大的前端开发者,WXSS 具有 CSS 大部分特性。同时为了更适合开发微信小程序,WXSS 对 CSS 进行了扩充以及修改。

尺寸单位rpx

rpx(responsive pixel): 可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。
设备	rpx换算px (屏幕宽度/750)	px换算rpx (750/屏幕宽度)
建议: 开发微信小程序时设计师可以用 iPhone6 作为视觉稿的标准。
常识:小程序的设计稿宽度一般都是750px.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VT57tHo6-1610417385572)(D:\img\1600476566151.png)]

样式导入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-96ULtGQ6-1610417385589)(D:\img\1601636067879.png)]

内联样式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2Rw6Z81W-1610417385595)(D:\img\1601636260881.png)]

选择器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IpcJaP0D-1610417385598)(D:\img\1601636426118.png)]

生命周期

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tScgp8M5-1610417385601)(D:\img\1601637186770.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jmr7FUZ1-1610417385602)(D:\img\1601637205541.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xKMBLRnK-1610417385604)(D:\img\1600511732553.png)]

路由和导航组件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KdTzpSYe-1610417385606)(D:\img\1601637685387.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ngmYLYXt-1610417385608)(D:\img\1601637709246.png)]

事件流

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gjed9KZz-1610417385609)(D:\img\1601638146910.png)]

事件分类

事件分为冒泡事件和非冒泡事件:

  1. 冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。
  2. 非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递。

WXML的冒泡事件列表:

类型触发条件
touchstart手指触摸动作开始
touchmove手指触摸后移动
touchcancel手指触摸动作被打断,如来电提醒,弹窗
touchend手指触摸动作结束
tap手指触摸后马上离开
longpress手指触摸后,超过350ms再离开,如果指定了事件回调函数并触发了这个事件,tap事件将不被触发
longtap手指触摸后,超过350ms再离开(推荐使用longpress事件代替)
transitionend会在 WXSS transition 或 wx.createAnimation 动画结束后触发
animationstart会在一个 WXSS animation 动画开始时触发
animationiteration会在一个 WXSS animation 一次迭代结束时触发
animationend会在一个 WXSS animation 动画完成时触发
touchforcechange在支持 3D Touch 的 iPhone 设备,重按时会触发

view容器

视图容器

scroll-view混动容器

可滚动视图区域。使用竖向滚动时,需要给scroll-view一个固定高度,通过 WXSS 设置 height。组件属性的长度单位默认为px,2.4.0起支持传入单位(rpx/px)。

swiper滑块容器

滑块视图容器。其中只可放置swiper-item组件,否则会导致未定义的行为。

基础内容组件

icon text rich-text progress

icon 图标。组件属性的长度单位默认为px,2.4.0起支持传入单位(rpx/px)。
progress 进度条。组件属性的长度单位默认为px,2.4.0起支持传入单位(rpx/px)。
rich-text 富文本。
text 文本。

表单组件

button checkbox form input radio switch textarea

button 按钮。
checkbox 多选项目。
form  表单。将组件内的用户输入的switch input checkbox slider radio picker 提交。
	 当点击 form 表单中 form-type 为 submit 的 button 组件时,会将表单组件中的 value 值进行提交,		 需要在表单组件中加上 name 来作为 key。
input 输入框。该组件是原生组件,使用时请注意相关限制
radio 单选项目
switch开关选择器。
textarea多行输入框。该组件是原生组件,使用时请注意相关限制。

媒体组件

audio camera image video

audio 音频。1.6.0版本开始,该组件不再维护。建议使用能力更强的 wx.createInnerAudioContext 接口
camera 系统相机。扫码二维码功能,需升级微信客户端至6.7.3。需要用户授权 scope.camera。 2.10.0起    			initdone 事件返回 maxZoom,最大变焦范围,相关接口 CameraContext.setZoom。
image图片。支持 JPG、PNG、SVG、WEBP、GIF 等格式,2.3.0 起支持云文件ID。
video 视频(v2.4.0 起支持同层渲染)。相关api:wx.createVideoContext

地图组件

map 地图(v2.7.0 起支持同层渲染)。相关api wx.createMapContext。

个性化地图能力可在小程序后台“开发-开发者工具-腾讯位置服务”申请开通,详见《微信小程序解决方案》。 小程序内地图组件应使用同一 subkey,可通过 layer-style(地图官网设置的样式 style 编号)属性选择不同的底图风格。 组件属性的长度单位默认为px,2.4.0起支持传入单位(rpx/px)。

API

网络请求

wx.request(Object object) 发起 HTTPS 网络请求

wx.request({
  url: 'test.php', //仅为示例,并非真实的接口地址
  data: { x: '',y: ''},
  type: 'get'//post
  header: {
    'content-type': 'application/json' // 默认值
  },
  success (res) {
    console.log(res.data)
  }
})

上传下载

wx.downloadFile(Object object) 下载文件资源到本地。客户端直接发起一个 HTTPS GET 请求,返回文件的本地临时路径 (本地路径),单次下载允许的最大文件为 200MB。

注意:请在服务端响应的 header 中指定合理的 Content-Type 字段,以保证客户端正确处理文件类型。

wx.downloadFile({
  url: 'https://example.com/audio/123', //仅为示例,并非真实的资源
  success (res) {
    // 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容
    if (res.statusCode === 200) {
      wx.playVoice({
        filePath: res.tempFilePath
      })
    }
  }
})

wx.uploadFile(Object object) 将本地资源上传到服务器。客户端发起一个 HTTPS POST 请求,其中 content-typemultipart/form-data

wx.chooseImage({
  success (res) {
    const tempFilePaths = res.tempFilePaths
    wx.uploadFile({
      url: 'https://example.weixin.qq.com/upload', //仅为示例,非真实的接口地址
      filePath: tempFilePaths[0],
      name: 'file',
      formData: {
        'user': 'test'
      },
      success (res){
        const data = res.data
        //do something
      }
    })
  }
})
数据缓存

wx.setStorageSync(string key, any data)

参数

string key 本地缓存中指定的 key

any data 需要存储的内容。只支持原生类型、Date、及能够通过JSON.stringify序列化的对象。

wx.setStorage({key:"key", data:"value"})

wx.removeStorageSync(string key)

wx.removeStorage({
  key: 'key',
  success (res) {
    console.log(res)
  }
})

wx.getStorageSync(string key)

wx.getStorage({
  key: 'key',
  success (res) {
    console.log(res.data)
  }
})

wx.clearStorageSync()

小程序跳转与传参

wx.switchTab(Object object)跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面

wx.redirectTo(Object object)关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。

wx.navigateTo(Object object)保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层。

相机
CameraContext 实例,可通过 wx.createCameraContext 获取。
CameraContext 与页面内唯一的 camera 组件绑定,操作对应的 camera 组件。
登陆
wx.login(Object object)
调用接口获取登录凭证(code)。通过凭证进而换取用户登录态信息,包括用户的唯一标识(openid)及本次登录的会话密钥(session_key)等。用户数据的加解密通讯需要依赖会话密钥完成。
wx.checkSession(Object object)
检查登录态是否过期。
通过 wx.login 接口获得的用户登录态拥有一定的时效性。用户越久未使用小程序,用户登录态越有可能失效。反之如果用户一直在使用小程序,则用户登录态一直保持有效。具体时效逻辑由微信维护,对开发者透明。开发者只需要调用 wx.checkSession 接口检测当前用户登录态是否有效

小程序配置

全局配置

小程序根目录下的 app.json 文件用来对微信小程序进行全局配置。文件内容为一个 JSON 对象
{
  "pages": [ //页面配置  第一条为首页
	"pages/storage/login",
    "pages/map/map",
    "pages/audio/audio",
    "pages/form/form",
    "pages/content/content",
    "pages/swiper/viewDemo",
    "pages/scrollView/viewDemo",
    "pages/event/event",
    "pages/route/route",
    "pages/life/life",
    "pages/index/index"
 
  ],
  "window": { //用于设置小程序的状态栏、导航条、标题、窗口背景色
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "Weixin",
    "navigationBarTextStyle": "black"
  },
  "tabBar": {//如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),
  //可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首页",
        "iconPath": "images/tab/yuedu.png",
        "selectedIconPath": "images/tab/yuedu_hl.png"
      },
      {
        "pagePath": "pages/life/life",
        "text": "生命周期",
        "iconPath": "images/tab/yuedu.png",
        "selectedIconPath": "images/tab/yuedu_hl.png"
      }
    ]
  },
  "style": "v2",
  "sitemapLocation": "sitemap.json"//指明 sitemap.json 的位置;默认为 'sitemap.json' 
  //即在 app.json 同级目录下名字的 sitemap.json 文件
}

页面配置

每一个小程序页面也可以使用 .json 文件来对本页面的窗口表现进行配置。页面中配置项在当前页面会覆盖 app.json 的 window 中相同的配置项。文件内容为一个 JSON 对象
{
  "navigationBarBackgroundColor": "#ffffff",
  "navigationBarTextStyle": "black",
  "navigationBarTitleText": "声明周期演示",
  "backgroundColor": "#eeeeee",
  "backgroundTextStyle": "light"
}

sitemap配置

小程序根目录下的 sitemap.json 文件用于配置小程序及其页面是否允许被微信索引,文件内容为一个 JSON 对象,如果没有 sitemap.json ,则默认为所有页面都允许被索引。
允许所有的页面被搜索到。一般不动它。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
出行先知微信小程序是一款基于微信平台的旅游出行信息查询和预定软件,用户可以通过该小程序了解目的地的天气、交通、景点等信息,并进行酒店、机票、火车票等预订。该小程序采用前后端分离的开发模式,前端使用微信小程序框架进行开发,后端则使用了Node.js和MongoDB数据库进行开发。 在设计过程中,主要考虑了以下几个方面: 1. 用户体验:系统需要具有良好的界面设计和易用性,能够方便快捷地完成各种操作。 2. 功能完备:系统需要提供多种旅游服务类型,包括景点门票、酒店预订、机票、火车票等,同时还需要支持用户历史订单查询等功能。 3. 安全性:系统需要保证用户的个人信息和交易数据的安全,采取相应的安全措施,如加密传输、防火墙等。 在实现过程中,主要采用了以下技术: 1. 微信小程序框架:使用微信小程序框架可以快速搭建一个基于微信平台的应用,具有跨平台、易于开发和部署等优点。 2. Node.js和MongoDB数据库:使用Node.js和MongoDB数据库可以实现系统的后端逻辑和数据存储,具有高性能、可靠性和可扩展性等优点。 3. RESTful API接口:使用RESTful API接口可以实现前后端的数据交互,提高系统的可维护性和可扩展性。 部署方面,该小程序可以通过云服务器进行部署,也可以直接在本地电脑上安装运行。此外,为了方便用户使用,该小程序还提供了详细的使用说明和演示视频,帮助用户快速上手并了解系统的使用方法。 总之,出行先知微信小程序是一款功能强大、易于使用的旅游出行信息查询和预定软件,适用于各种类型的旅游需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值