微信小程序开发-保姆式教程-入门篇

一,注册微信小程序

1.打开 微信公众平台

image.png


2.注册开发者账号

可以选择注册服务号/小程序号,如果有公司资质可选择注册服务号,在服务号里快速复用公司资质直接注册小程序号,一个服务号可以关联注册10个同主体或关联主体的小程序,3个非同主体小程序。

  • 服务号:企业资质,在服务号里可直接快速注册多个小程序号

  • 小程序:企业资质、个人资质···

注册需要用到的资料

  • 个人注册:身份证姓名、身份证号码、管理员手机、短信验证、管理员身份验证等等

  • 企业注册:企业类型、营业执照注册号、管理员身份证姓名、管理员身份证号码、管理员手机号码、短信验证等

注册账号.png

小程序注册

填写基本信息.png
激活.png
个人小程序.png
企业资质小程序.png


3.微信公众平台

注册完成后,既可登录微信公众平台,填写小程序信息、小程序类目,填写完整既可在设置中找到小程序AppId以及配置小程序秘钥。
在里面版本管理、成员管理、添加开发域名、管理插件、查看核心数据等,

微信公众平台.png


二,微信开发者工具

下载微信web开发者工具,根据自己的操作系统下载对应的安装包进行安装即可。

2.1.创建工程

  • 登录微信公众平台,填写好小程序信息后,去设置里面找到账号信息,找到小程序AppID
image.png
  • 打开微信开发者工具,点击加号创建工程
image.png
  • 填写好AppID等信息,选择工程模板,确定
image.png
  • 进入工程


    image.png


2.2.界面介绍

  • 微信开发工具界面


    image.png
  • 项目工程目录


    项目结构1.png


2.3 全局配置

小程序配置项 微信开发文档
小程序根目录下的 app.json 文件用来对微信小程序进行全局配置。文件内容为一个 JSON 对象

配置项
属性 类型 必填 描述 最低版本
entryPagePath string 小程序默认启动首页
pages string[] 页面路径列表
window Object 全局的默认窗口表现
tabBar Object 底部 tab 栏的表现
networkTimeout Object 网络超时时间
debug boolean 是否开启 debug 模式,默认关闭
functionalPages boolean 是否启用插件功能页,默认关闭 2.1.0
subpackages Object[] 分包结构配置 1.7.3
workers string Worker 代码放置的目录 1.9.90
requiredBackgroundModes string[] 需要在后台使用的能力,如「音乐播放」
plugins Object 使用到的插件 1.9.6
preloadRule Object 分包预下载规则 2.3.0
resizable boolean PC 小程序是否支持用户任意改变窗口大小(包括最大化窗口);iPad 小程序是否支持屏幕旋转。默认关闭 2.3.0
usingComponents Object 全局自定义组件配置 开发者工具 1.02.1810190
permission Object 小程序接口权限相关设置 微信客户端 7.0.0
sitemapLocation string 指明 sitemap.json 的位置
style string 指定使用升级后的weui样式 2.8.0
useExtendedLib Object 指定需要引用的扩展库 2.2.1
entranceDeclare Object 微信消息用小程序打开 微信客户端7.0.9
darkmode boolean 小程序支持 DarkMode 2.11.0
themeLocation string 指明 theme.json 的位置,darkmode为true为必填 开发者工具 1.03.2004271
lazyCodeLoading string 配置自定义组件代码按需注入 2.11.1
singlePage Object 单页模式相关配置 2.12.0
  • pages配置

用于指定小程序由哪些页面组成,每一项都对应一个页面的 路径(含文件名) 信息。文件名不需要写文件后缀,框架会自动去寻找对应位置的 .json, .js, .wxml, .wxss 四个文件进行处理。

"pages": [
    "pages/index/index",
    "pages/next-bus/next-bus",
    "pages/park-map/park-map",
    "pages/park/park",
    "pages/route-info/route-info",
    "pages/glory-futian/glory-futian",
    "pages/glory-futian/details/vehicle-road/vehicle-road",
    "pages/glory-futian/details/station/station",
    "pages/glory-futian/details/smart-road/smart-road",
    "pages/glory-futian/details/slow/slow",
    "pages/bind-car/bind-car",
    "pages/offiaccount-login/offiaccount-login",
    "pages/construction/construction"
  ],
  • window配置

用于设置小程序的状态栏、导航条、标题、窗口背景色等。

属性 类型 默认值 描述
navigationBarBackgroundColor HexColor #000000 导航栏背景颜色,如 #000000
navigationBarTextStyle string white 导航栏标题颜色,仅支持 black / white
navigationBarTitleText string 导航栏标题文字内容
navigationStyle string default 导航栏样式,仅支持以下值:default 默认样式custom 自定义导航栏,只保留右上角胶囊按钮。参见注 2。
homeButton boolean default 在非首页、非页面栈最底层页面或非 tabbar 内页面中的导航栏展示 home 键
backgroundColor HexColor #ffffff 窗口的背景色
backgroundTextStyle string dark 下拉 loading 的样式,仅支持 dark / light
backgroundColorTop string #ffffff 顶部窗口的背景色,仅 iOS 支持
backgroundColorBottom string #ffffff 底部窗口的背景色,仅 iOS 支持
enablePullDownRefresh boolean false 是否开启全局的下拉刷新。
onReachBottomDistance number 50 页面上拉触底事件触发时距页面底部距离,单位为 px。
pageOrientation string portrait 屏幕旋转设置,支持 auto / portrait / landscape
restartStrategy string homePage 重新启动策略配置
initialRenderingCache string 页面初始渲染缓存配置,支持 static / dynamic
visualEffectInBackground string none 切入系统后台时,隐藏页面内容,保护用户隐私。支持 hidden / none
handleWebviewPreload string static 控制预加载下个页面的时机 支持 static / manual / auto
  • tabBar配置

客户端窗口的底部或顶部有 tab 栏可以切换页面,可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。

属性 类型 必填 默认值 描述
color HexColor tab 上的文字默认颜色,仅支持十六进制颜色
selectedColor HexColor tab 上的文字选中时的颜色,仅支持十六进制颜色
backgroundColor HexColor tab 的背景色,仅支持十六进制颜色
borderStyle string black tabbar 上边框的颜色, 仅支持 black / white
list Array tab 的列表,详见 list 属性说明,最少 2 个、最多 5 个 tab
position string bottom tabBar 的位置,仅支持 bottom / top
custom boolean false 自定义 tabBar

其中 list 接受一个数组,只能配置最少 2 个、最多 5 个 tab。tab 按数组的顺序排序,每个项都是一个对象,其属性值如下:

属性 类型 必填 说明
pagePath string 页面路径,必须在 pages 中先定义
text string tab 上按钮文字
iconPath string 图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。当 positiontop 时,不显示 icon。
selectedIconPath string 选中时的图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。当 positiontop 时,不显示 icon。
image.png
  • networkTimeout 网络请求超时配置

各类网络请求的超时时间,单位均为毫秒。


image.png
  • 分包加载加载

某些情况下,开发者需要将小程序划分成不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载。
在构建小程序分包项目时,构建会输出一个或多个分包。每个使用分包小程序必定含有一个主包。所谓的主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本;而分包则是根据开发者的配置进行划分。
在小程序启动时,默认会下载主包并启动主包内页面,当用户进入分包内某个页面时,客户端会把对应分包下载下来,下载完成后再进行展示。
目前小程序分包大小有以下限制:
整个小程序所有分包大小不超过 20M
单个分包/主包大小不能超过 2M

image.png

image.png


2.4 小程序页面配置

页面配置地址
小程序中,可以在页面对应的 .json 文件来对本页面的表现进行配置。如:导航栏样式、自定义组件注入等。

注意:app.json 中的部分配置,可以再页面对应的.json进行重新配置,页面中配置项在当前页面会覆盖 app.json 中相同的配置项。

配置项

属性 类型 默认值 描述
navigationBarBackgroundColor HexColor #000000 导航栏背景颜色,如 #000000
navigationBarTextStyle string white 导航栏标题颜色,仅支持 black / white
navigationBarTitleText string 导航栏标题文字内容
navigationStyle string default 导航栏样式,仅支持以下值:default 默认样式custom 自定义导航栏,只保留右上角胶囊按钮。
homeButton boolean false 在非首页、非页面栈最底层页面或非 tabbar 内页面中的导航栏展示 home 键
backgroundColor HexColor #ffffff 窗口的背景色
backgroundTextStyle string dark 下拉 loading 的样式,仅支持 dark / light
backgroundColorTop string #ffffff 顶部窗口的背景色,仅 iOS 支持
backgroundColorBottom string #ffffff 底部窗口的背景色,仅 iOS 支持
enablePullDownRefresh boolean false 是否开启当前页面下拉刷新
onReachBottomDistance number 50 页面上拉触底事件触发时距页面底部距离,单位为px
pageOrientation string portrait 屏幕旋转设置,支持 auto / portrait / landscape
disableScroll boolean false 设置为 true 则页面整体不能上下滚动。只在页面配置中有效,无法在 app.json 中设置
usingComponents Object 页面自定义组件配置
initialRenderingCache string 页面初始渲染缓存配置,支持 static / dynamic
style string default 启用新版的组件样式
singlePage Object 单页模式相关配置
restartStrategy string homePage 重新启动策略配置
handleWebviewPreload string static 控制预加载下个页面的时机。支持 static / manual / auto
visualEffectInBackground string 切入系统后台时,隐藏页面内容,保护用户隐私。支持 hidden / none,若对页面单独设置则会覆盖全局的配置
enablePassiveEvent Object或boolean 事件监听是否为 passive,若对页面单独设置则会覆盖全局的配置
renderer string 渲染后端


三、小程序语法

网页编程采用的是 HTML + CSS + JS 这样的组合,小程序也是如此 WXML + WXSS+ JS 。

3.1.wxml

和html没什么区别,只是标签名称不同。 多了一些表达式


{{parkType}}

{{msg.length}}



  数据加载中···请稍后!


  数据加载中···请稍后!


  数据加载中···请稍后!




  {{item.name}}
  






  {{item}}





{{"hello" + name}}




  • wxml模板使用
    定义item.wxml

使用模板