微信小程序开发(详解)-保证学的明明白白的

news/2024/7/20 1:29:07 标签: 小程序, 前端, vue.js, 微信小程序

微信开发简介

1.微信开发概述

概述

(1)微信开发即微信公众平台开发,将企业信息、服务、活动等内容通过微信网页的方式进行表现,用户通过简单的设置,就能生成微信网站。
(2)通俗的说,就是微信对外提供了例如聊天、支付、分享、收藏等功能,同时还提供了丰富的封装好的接口,开发者利用这些接口和功能,写入程序中,进行的开发。

目的

(1)企业开发的需要,使自己更加符合企业发展的需求
(2)个人的发展以及技能的提升
(3)发展前景大、生态系统丰富

平台

(1)微信开放平台
(2)微信公众平台

2.微信开放平台

概述

微信开放平台是微信对外提供微信开发接口的一个平台,这些开发出来的微信接口,供第三方的网站或App使用,使用户可将第三方程序的内容发布给好友或分享至朋友圈,第三方内容借助微信平台获得更广泛的传播。

平台地址:https://open.weixin.qq.com/

微信开放平台提供的能力

微信分享、 微信支付、 微信登录、微信收藏、微信分享等等

产品应用

(1)网站应用开发
(2)移动应用开发
(3)第三方平台开发
(4)公众帐号开发

只有通过 开发者资质认证后,才能使用开发平台提供的能力

3.微信公众平台 ***

mp.wqeixin.qq.com

3.1微信公众平台概述

为开发者提供资讯和服务的平台

3.2账号分类

1、服务号
2、订阅号
3、小程序
4、企业微信

4.开放平台和公众平台的区别

1.开放平台
	(1)微信对外开放接口的平台
	(2) 开放的接口,供其他网站及App使用
	(3)后端程序员是开放平台开发的主力军
2.公众平台
	(1) 基于微信公众号,为微信用户提供服务的平台
	(2) 所用公众号,都属于微信内开发
	(3)前端程序员是公众平台开发的主力军

三、认识小程序

1.小程序概述

小程序是一种新的开放能力,开发者可以快速地开发一个小程序小程序可以在微信内被便捷地获取和传播,同时具有出色的使用体验。

微信小程序小程序的一种,英文名Wechat Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。

2.应用场景

适合轻量简单的开发
	快递类,商城类,餐饮类,教育。。。

3.亮点与不足

优点:
	1、不需要下载安装即可使用的应用
	2、自带流量(12亿微信用户都可以使用)
	3、开发难度低(html+css+js)
	4、开发成本低
缺点:
	1、代码大小默认只有2M
	2、不能直接分享到朋友圈

四、注册小程序账号

1.小程序账号注册流程

信息登记

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mldbeduT-1620906177905)(img/day01-1.png)]

填写管理员信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XzLlaZKN-1620906177909)(img/day01-2.png)]

2.小程序信息完善

登陆之后,找到左侧设置,如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iZBRUcwh-1620906177910)(img/day01-3.png)]

3、管理

版本管理:

​ 开发版

​ 体验版

​ 审核版

​ 线上版

成员管理

​ 管理员

​ 项目成员

​ 体验成员

4、开发设置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h0q3f9HV-1620906177912)(img/day01-4.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8ceaxaC8-1620906177913)(img/day01-5.png)]

注意:域名必须是https协议,,域名必须被解析

五、微信开发者工具及工程创建

首先小程序开发不同于普通的网页开发,项目不能运行在浏览器中,所以无法查看编程效果以及调试,微信开发者工具提供了代码的编程能力,调试能力以及展示运行效果能力等强大的功能

1.工具下载安装

https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

2.工程创建

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q5ay0ywu-1620906177914)(img/day01-6.png)]

3.工具常用功能使用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uTGzf1fM-1620906177916)(img/day01-7.png)]


六、工程目录(重点)

1.初始化工程目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B0AVvEav-1620906177917)(img/day01-8.png)]

app.js    小程序的入口文件   类似于 vue里的main.js
app.json  全局配置文件
app.wxss  全局样式文件
project.config.json  项目关于编辑器的配置文件  
sitemap.json   站点地图(哪些页面能够被搜索到)
utils:     工具目录
pages:页面目录
	index目录
		index.wxml  页面结构 相当于html
		index.wxss  页面样式 相当于css
		index.js    页面逻辑
		index.json  页面的配置
	

  

2.小程序目录结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ll4QDdZ2-1620906177918)(img/day01-9.png)]

七、小程序配置

1.配置概述

小程序根目录下的 app.json 文件用来对微信小程序进行全局配置。文件内容为一个 JSON 对象,有以下属性:

2.全局配置app.json

 "entryPagePath": "pages/cart/cart",     设置默认启动页
  "pages": [                             创建页面(在pages里的页面,必须在注册注册)
    "pages/index/index",
    "pages/list/list",
    "pages/logs/logs",
    "pages/cart/cart"
  ],
    "window": {
    "navigationBarBackgroundColor": "#f00",   窗口背景颜色
    "navigationBarTitleText": "微信小程序",     标题内容
    "navigationBarTextStyle": "black",         标题的文字颜色
    "navigationStyle":"default",               是否自定义顶部window  dustum  自定义

    "backgroundColor":"#6699cc",               下拉时的背景颜色
    "enablePullDownRefresh":true,              开启下拉刷新
    "backgroundTextStyle":"light"              load的加载样式  dark  闪烁  light 不闪烁
  },
  
  tabber项至少两个,最多五个
    "tabBar": {
    "color": "#666",
    "selectedColor": "#f00",
    "backgroundColor":"#ff0",
    "borderStyle":"white",
    "custom":false,
    "position": "bottom",
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首页",
        "iconPath": "/img/index.png",
        "selectedIconPath": "/img/index_sel.png"
      },{
        "pagePath": "pages/cart/cart",
        "text": "购物车",
        "iconPath": "/img/cart.png",
        "selectedIconPath": "/img/cart_sel.png"
      },{
        "pagePath": "pages/list/list",
        "text": "列表", 
        "iconPath": "/img/my.png",
        "selectedIconPath": "/img/my_sel.png"
      }
    ]
  }

注意事项:

1、json文件里不允许注释

2、字符串使用的是双引号

3、 “pages/index/index” 在pages前不要添加任何字符 . ./ …/

4、在最后一项后边不要添加逗号

3.页面配置page.json

每一个小程序页面也可以使用 .json 文件来对本页面的窗口表现进行配置。页面中配置项在当前页面会覆盖 app.json 的 window 中相同的配置项。文件内容为一个 JSON 对象,有以下属性

注意:不需要指定window
{
   "navigationBarBackgroundColor":"#ff0",
   "navigationBarTitleText":"首页"
}

八、场景值

1.场景值概述

获取到进入小程序的途径/场景

2.使用场景

KFC
搜索小程序:进入到首页
到店,扫描桌子二维码,进入到点餐

3.获取场景值

App({
  // 监听小程序的初始化
  方式一、
  onLaunch(options){
    console.log(options)
    if(options.scene==1001){
      // 进入到首页
    }else{
      // 进入到点餐页面
    }
  },

	方式二、
  // 监听小程序显示或切前台
  onShow(options){
    console.log(options)
  },
  方式三、 api获取   也可以放到onLaunch
  onShow(){
   let scene = wx.getLaunchOptionsSync()
   console.log(scene)
  },
})

十、小程序逻辑层

1.逻辑层概述

小程序开发框架的逻辑层使用 JavaScript 引擎为小程序提供开发者 JavaScript 代码的运行环境以及微信小程序的特有功能。

在 JavaScript 的基础上,我们增加了一些功能,以方便小程序的开发:

增加 App 和 Page 方法,进行程序注册和页面注册。
增加 getApp 和 getCurrentPages 方法,分别用来获取 App 实例和当前页面栈。
提供丰富的 API,如微信用户数据,扫一扫,支付等微信特有能力。
提供模块化能力,每个页面有独立的作用域。

注意:小程序框架的逻辑层并非运行在浏览器中,因此 JavaScript 在 web 中一些能力都无法使用,如 window,document 等。

2.小程序注册App()

App({

	onLaunch,onShow,onHide生命周期函数
  // 只执行一次
  onLaunch(){
    console.log("onLaunch-监听小程序初始化")
  },
  // 每次进入到这个小程序时都执行
  onShow(){
    console.log("onShow-监听小程序启动或切前台")
  },
  onHide(){
    console.log("onHide-监听小程序切后台")
  },
  onError(err){
    console.log("onError-错误监听函数。",err)
  },
  onPageNotFound(){
    console.log("页面不存在")
    wx.switchTab({
      url: './pages/index/index',
    })
  }

 
})

2.1获取全局唯一应用实例

写在页面的js文件里即可
let app = getApp()
let {name,age} = app.userinfo
console.log(name,age)

3.页面注册Page()

Page({
	

  // 生命周期
  // 只加载一次,在onLoad里options 可以接收参数,注意:在tabber页面无法接参
  onLoad(options){
    console.log("onLoad-生命周期回调—监听页面加载")
  },
  // 每次进到当前页面都会加载
  onShow(){
    console.log("onShow-生命周期回调—监听页面显示")
  },
  onReady(){
    console.log("onReady-监听页面初次渲染完成")
  },
  onHide(){
    console.log("onHide-监听页面隐藏")
  },
  onUnload(){
    console.log("onUnload-监听页面卸载")
  },
  事件函数
    onPullDownRefresh(){
    // 监听用户下拉
    // 1、获取data里的变量
    console.log(this.data.msg)
    // 2、修改值
    // this.setData 可以更新页面
    this.setData({
      msg:"web1207"
    })

    // 也能修改成功,但是不能更新页面
    // this.data.msg = "web1207"
    // console.log(this.data.msg)

  },
    onReachBottom(){
    console.log("上拉触底")
    this.data.page++
    console.log(this.data.page)
    // 调用接口 页码传过去
        

  },
      
      
  // 转发给朋友
  onShareAppMessage(){

  },
  // 转发到朋友圈
  onShareTimeline(){

  },
  // any
  info:{
    name:"root",
    age:"18"
  },
  fn(){
    return "我是自定义函数111"
  }
  })
  
  A页面-B页面  经过了几个生命周期
  A onHide - B onLoad - B onShow - B onReady
  
  进入到一个小程序小程序onLaunch-小程序的onShow-页面的onLoad - 页面的onshow - 页面的onready
  离开一个小程序:
  		页面的onHide - 小程序的onHide

4.模块化

可以将一些公共的代码抽离成为一个单独的 js 文件,作为一个模块。模块只有通过 module.exports 或者 exports 才能对外暴露接口。es6也完全支持
// commonjs 暴露
module.exports = baseurl

module.exports = {
  baseurl,userinfo
}
//引入
// let baseurl = require("../../utils/config") 
let {baseurl,userinfo} = require("../../utils/config")
console.log(baseurl,userinfo)

// es6
export default baseurl
export default {baseurl,userinfo}

import aa from "../../utils/config"
console.log(aa.baseurl,aa.userinfo)


十一、基础语法

1.基础组件

组件是视图层的基本组成单元。
组件自带一些功能与微信风格一致的样式。
一个组件通常包括 开始标签 和 结束标签,属性 用来修饰这个组件,内容 在两个标签之内。

所有组件都有以下属性:

属性名类型描述注解
idString组件的唯一标示保持整个页面唯一
classString组件的样式类在对应的 WXSS 中定义的样式类
styleString组件的内联样式可以动态设置的内联样式
hiddenBoolean组件是否显示所有组件默认显示
data-*Any自定义属性组件上触发的事件时,会发送给事件处理函数
bind* / catch*EventHandler组件的事件详见事件

特殊属性

<view >
  <view class="box"  
hover-class="active"
hover-start-time="0"
hover-stay-time="500"
>
  
</view>
</view>

<!-- 相当于span -->
<text user-select space="emsp" decode>
  相当于       span相当于span相当于span相当于span相当于span相当于span

  &lt;
</text>


<image src="/img/cart1.png" binderror="_binderror" lazy-load show-menu-by-longpress bindload="_bindload"></image>

2.数据渲染

基本数据绑定
	{{}} 语法
属性绑定
<!-- 
  属性绑定:
      vue   v-bind   :class=“box”
      小程序           class = "{{box}}"
 -->
<view class="{{box}}">
  首页
</view>
	
遍历

<view wx:for="{{arr}}">
  {{index}} ----  {{item}}
</view>

<view wx:for="{{userinfo}}">
  {{index}} -- {{item}}
</view>


<view wx:for="{{goodsinfo}}"> 
  {{item.price}} --- {{item.goodsname}}
</view>

http://www.niftyadmin.cn/n/508977.html

相关文章

微信小程序WXML、WXSS、事件系统、WXS、组件(详解)--看完就会写微信小程序。前面还有基础教程

三、视图层概述 、 框架的视图层由 WXML 与 WXSS 编写&#xff0c;由组件来进行展示。将逻辑层的数据反映成视图&#xff0c;同时将视图层的事件发送给逻辑层。WXML(WeiXin Markup language) 用于描述页面的结构。WXS(WeiXin Script) 是小程序的一套脚本语言&#xff0c;结合 …

轮距和轴距有什么区别_林肯冒险家怎么样?冒险家和锐际有什么区别?

近日&#xff0c;林肯旗下首款国产车型&#xff0c;全新林肯冒险家Corsair正式上市。与福特锐际一样&#xff0c;冒险家全系也标配高功率版2.0L涡轮增压发动机&#xff0c;官方指导价为24.68-34.58万元&#xff0c;其发动机型号与福特锐际完全相同&#xff0c;那么冒险家是精装…

html背景音乐_游戏中的背景音乐-奇亿音乐

无论是复杂的大型游戏&#xff0c;还是简单的H5类游戏&#xff0c;游戏背景音乐总是一如既往的存在于游戏内&#xff0c;与游戏如胶似漆&#xff0c;那么游戏背景音乐存在于游戏内有什么特殊的含义呢&#xff1f;奇亿音乐认为&#xff0c;游戏背景音乐存在于游戏中大致可分为两…

微信小程序路由导航、自定义组件、slot槽口、组件通信、小程序生命周期、各种API,缓存,掉接口、get,post网络

1.导航组件&#xff08;声明式导航&#xff09; <!--navigate: 保留当前页面&#xff0c;跳转到应用内的某个页面。但是不能跳到 tabbar 页面 redirect:关闭当前页面&#xff0c;跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面switchTab:跳转到 tabBar 页面&#x…

服务器搬迁方案_邮箱数据协议迁移方案

功能简介网易企业邮箱提供邮件系统搬迁功能&#xff0c;给予刚开始启用网易企业邮箱的客户&#xff0c;用于完整地搬迁企业原邮件系统的邮箱帐号、密码以及邮箱里的所有邮件&#xff0c;让企业客户可以更快捷、更轻松地完成邮件系统搬迁工作。网易企业邮箱邮件系统搬迁功能&…

供应商去市网维护银行账号信息_SAP MM供应商主数据

SAP供应商主数据包括通用数据&#xff0c;会计数据&#xff0c;采购组织数据。通用数据属于(client)客户端级别数据&#xff0c;适用于同客户端所有公司&#xff0c;会计数据属于公司代码级别数据&#xff0c;采购组织数据属于采购组织级别数据。供应商主记录包含有关某个企业的…

微信小程序常用界面api及案例、获取用户信息、获取手机号、WeUI组件库、微信小程序云开发、云函数、云存储

三.常用界面api及案例 常用界面API&#xff1a;wx.showToast()、wx.showLoading()、wx.hideLoading()、wx.setNavigationBarTitle() 案例需求&#xff1a;请求接口&#xff0c;获取数据&#xff0c;进行数据渲染&#xff0c;添加点击事件&#xff0c;跳转页面&#xff0c;动态…

excel图片地址直接显示图_图片如何转换成pdf?免费教你几个宝藏方法,请低调使用!...

图片如何转换成pdf&#xff1f;很多人在传输图片的时候都喜欢直接打包文件将其压缩再传送&#xff0c;其实这样并不方便他人查看&#xff0c;并且受到压缩/解压缩工具的限制&#xff0c;很可能对方压根无法查看收到的图片。建议大家可以尝试把图片转换为PDF再进行传输&#xff…