草庐IT

微信小程序-起步

lalaxuan 2024-02-20 原文

小程序简介

小程序与普通网页开发的区别

  1. 运行环境不同
    网页运行在浏览器中
    小程序运行在微信环境中
  2. API不同
    由于运行环境不同,所以小程序中无法调用DOM和BOM的API
    但是小程序中可以调用微信环境提供的各种API,例如:
    地理定位
    扫码
    支付
  3. 开发模式不同
    网页的开发模式:浏览器+代码编辑器
    小程序:
    申请小程序开发账号
    安装小程序开发者工具
    创建和配置小程序项目

注册小程序开发账号

使用浏览器打开http://mp.weixin.qq.com/ 点击立即注册

安装步骤填写信息注册即可:

微信小程序注册入口和注册流程(完整版图文教程)

个人接口可能权限少一点 不支持微信认证 微信支付以及高级接口相关的内容

如何获取小程序的AppID

登录之后:

安装微信开发者工具

推荐下载和安装最新的稳定版的微信开发者工具,下载页面的链接:下载


安装完成后 微信扫码登录即可
设置-外观 调整主题颜色
设置-编辑器-调整字号以及行距
设置-代理设置-不使用代理直连网络

创建第一个小程序

选择javascript模板 不使用云服务开发 创建

可以在模拟器查看项目效果 也可以通过预览-扫描二维码 在手机上查看

主界面有5个组成部分:
菜单栏: 帮助-开发者文档 工具-构建npm
工具栏
模拟器
代码编辑区
测试区

小程序代码的构成

项目结构


pages用来存放所有小程序的页面
utils用来存放工具性质的模块
app.js小程序项目的入口文件
app.json小程序项目的全局配置文件

app.wxss小程序项目的全局样式文件
project.config.json项目的配置文件
sitemap.json用来配置小程序及其页面是否允许被微信索引

小程序页面的组成部分

小程序官方建议把所有小程序的页面 都存放在pages目录中,以单独的文件夹存在

  1. js文件 页面的脚本文件,存放页面的数据、事件处理函数等
  2. json文件 当前页面的配置文件,配置窗口的外观、表现等
  3. wxml文件 页面的模板结构文件
  4. wxss文件 当前页面的样式表文件

JSON配置文件的作用

json是一种数据格式,在实际开发中,json总是以配置文件的形式出现
小程序中有4种json配置文件:

  1. 项目根目录中的app.json配置文件
  2. 项目根目录中的project.config.json配置文件
  3. 项目根目录中的sitemap.json配置文件
  4. 每个页面文件夹中的.json配置文件

app.json

app.json是当前小程序的全局配置,包括了小程序所有页面路径、窗口外观、界面表现、底部tab


pages:用来记录当前小程序所有页面的路径
window:全局定义小程序所有页面的背景色、文字颜色
style:全局定义小程序组件所使用样式的版本
sitemapLocation: 用来指明sitemap.json的位置

project.config.json

project.config.json是项目配置文件,用来记录我们对小程序开发工具所做的个性化配置
例如:

  1. setting中保存了编译相关的配置
  2. projectname中保存的是项目名称
  3. appid保存的是小程序的账号ID

sitemap.json

微信现已开发小程序内搜索,效果类似于PC网页的SEO。 sitemap.josn文件用来配置小程序页面是否允许被微信索引

页面的json配置文件

对本页面的窗口外观进行设置,页面中的配置项会覆盖app.json的window中的相同配置项

新建小程序页面

只需要在app.json-> pages中新增页面的存放路径,小程序开发者工具即可帮我们自动创建对应的页面文件

修改项目首页

只需要调整app.json->pages数组中页面路径的前后顺序 ,即可修改项目的首页。
小程序会把排在第一位的页面,当做项目首页进行渲染

什么是wxml

WXML(WeiXin MarkUp Language)是小程序框架设计的一套标签语言,用来构建小程序页面的结构,其作用类似于网页开发中的HTML

区别:

  1. 标签名称不同
    HTML(div span img a)
    WXMl(view text image navigator)
  2. 属性节点不同
    <a href="#"></a>
    <navigator url="/pages/home/home"></navigator>
  3. 提供了类似于Vue中的模板语法
    数据绑定
    列表渲染
    条件渲染

什么是WXSS

WXSS(WeiXin Style Sheets)是一套样式语言,用于描述WXML的组件样式,类似于网页开发中的CSS

区别:

  1. 新增了rpx尺寸单位
    css中需要手动进行像素单位换算,例如rem
    wxss在底层支持新的尺寸单位rpx, 在不同大小的屏幕上小程序会自动进行换算
  2. 提供了全局样式和局部样式
    项目根目录中的app.wxss会作用于所有的小程序页面
    局部页面的.wxss样式仅对当前页面生效
  3. WXSS仅支持部分CSS选择器
    class和id
    element
    并集选择器 后代选择器
    ::after和::before等伪类选择器

js逻辑交互

.js文件处理用户的交互
小程序中的js文件分为三大类,分别是:

  1. app.js
    整个小程序项目的入口文件,通过调用App()函数来启动整个小程序
  2. 页面的.js
    页面的入口文件,通过调用Page()函数来创建并运行页面
  3. 普通的.js文件
    普通的功能模块文件,用来封装公共的函数或属性供页面使用
    utils/utils.js

小程序的宿主环境

宿主环境指的是程序运行所必须依赖的环境
脱离了宿主环境的软件是没有任何意义的

手机微信是小程序 的宿主环境
小程序借助宿主环境提供的能力,可以完成许多普通网页无法完成的功能,例如:微信扫码、微信支付、微信登录、地理定位、etc

小程序宿主环境包含的内容

  1. 通信模型
  2. 运行机制
  3. 组件
  4. API

通信模型

小程序中通信的主体是渲染层逻辑层其中

  1. WXML模板和WXSS样式工作在渲染层
  2. JS脚本工作在逻辑层

通信模型分为两个部分
渲染层逻辑层之间的通信

逻辑层第三方服务器之间的通信
都是有微信客户端进行转发

运行机制

启动的过程:

  1. 把小程序的代码包下载到本地
  2. 解析app.json全局配置文件
  3. 执行app.js小程序入口文件,调用App()创建小程序实例
  4. 渲染小程序首页
  5. 小程序启动完成

页面渲染过程
6. 加载解析页面的.json的配置文件
7. 加载页面的.wxml模板和.wxss样式
8. 执行页面的.js文件,调用Page()创建页面实例
9. 页面渲染完成

组件

组件也是由宿主环境提供的
官方把小程序的组件分为了9大类:

  1. 视图容器
  2. 基础内容
  3. 表单组件
  4. 导航组件
  5. 媒体组件
  6. map地图组件
  7. canvas画布组件
  8. 开放能力
  9. 无障碍访问

常用的视图容器类组件

view
普通视图区域
类似于HTML中的div,是一个块级元素
常用来实现页面的布局效果

scroll-view
可滚动的视图区域
常用来实现滚动列表效果
swiperswiper-item
轮播图容器组件和轮播图item组件

view组件的基本使用

实现如图的flex横向布局效果:

注意:containerapp.wxss已自动设置 这里设置container的话 会使用全局样式

<!--pages/list/list.wxml-->
<view class="container1">
 <view>1</view>
 <view>2</view>
 <view>3</view>
</view>
/* pages/list/list.wxss */
.container1 {
 display: flex;
 justify-content: space-around;
}
.container1 view {
  padding: 20px 30px;
  color: #fff;
}
.container1 view:nth-child(1) {
  background-color: #12aa9c;
}
.container1 view:nth-child(2) {
  background-color: #2775b6;
}
.container1 view:nth-child(3) {
  background-color: #ee3f4d;
}

scroll-view的基本使用

<!--pages/list/list.wxml-->
<scroll-view class="container1" scroll-y>
  <view>1</view>
  <view>2</view>
  <view>3</view>
</scroll-view>
/* pages/list/list.wxss */
.container1 {
  border: 1px solid red;
  /* 给scroll-view设置固定高度 */
  height: 120px;
  width: 100px
}
.container1 view {
  width: 100px;
  height: 100px;
  line-height: 100px;
  text-align: center;
  color: #fff;
}
.container1 view:nth-child(1) {
  background-color: #12aa9c;
}
.container1 view:nth-child(2) {
  background-color: #2775b6;
}
.container1 view:nth-child(3) {
  background-color: #ee3f4d;
}

swiper和swiper-item组件的基本使用

<!--pages/list/list.wxml-->
<!-- 轮播图区域 -->
<!-- indicator-dots 显示面板指示点 -->
<swiper class="swiper-container" indicator-dots>
  <!-- 第一项 -->
  <swiper-item>
    <view class="item">A</view>
  </swiper-item>
  <!-- 第二项 -->
  <swiper-item>
    <view class="item">B</view>
  </swiper-item>
  <!-- 第三项 -->
  <swiper-item>
    <view class="item">C</view>
  </swiper-item>
</swiper>
/* pages/list/list.wxss */
.swiper-container {
  /* 轮播图容器的高度 */
  height: 150px;
}

.item {
  height: 100%;
  line-height: 150px;
  text-align: center;
}
swiper-item:nth-child(1) .item {
  background-color: lightgreen;
}
swiper-item:nth-child(2) .item {
  background-color: lightblue;
}
swiper-item:nth-child(3) .item {
  background-color: lightcoral;
}

其他属性

text

文本组件
类似于HTML中的span标签,是一个行内元素
通过selectable属性 实现长按选中文本内容的效果

<view>
  手机号长按支持选中
  <text selectable>19947994739</text>
</view>

rich-text

富文本组件
支持把HTML字符串渲染为WXML结构

<rich-text nodes="<h1 style='color: red'>标题</h1>"></rich-text>

button

按钮组件
通过open-type属性可以调用微信提供的各种功能(客服、转发、获取用户授权、获取用户信息等)

<button type="primary" size="mini" plain>按钮</button>

image

图片组件
image组件默认宽度约为300px、高度约为240px
属性

小程序当中的API

3大分类:
事件监听API
同步API
异步API
文档

有关微信小程序-起步的更多相关文章

  1. 微信小程序通过字典表匹配对应数据 - 2

    前言一般来说,前端根据后台返回code码展示对应内容只需要在前台判断code值展示对应的内容即可,但要是匹配的code码比较多或者多个页面用到时,为了便于后期维护,后台就会使用字典表让前端匹配,下面我将在微信小程序中通过wxs的方法实现这个操作。为什么要使用wxs?{{method(a,b)}}可以看到,上述代码是一个调用方法传值的操作,在vue中很常见,多用于数据之间的转换,但由于微信小程序诸多限制的原因,你并不能优雅的这样操作,可能有人会说,为什么不用if判断实现呢?但是if判断的局限性在于如果存在数据量过大时,大量重复性操作和if判断会让你的代码显得异常冗余。wxswxs相当于是一个独立

  2. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  3. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

  4. Ubuntu20.04系统WineHQ7.0安装微信 - 2

    提供3种Ubuntu系统安装微信的方法,在Ubuntu20.04上验证都ok。1.WineHQ7.0安装微信:ubuntu20.04安装最新版微信--可以支持微信最新版,但是适配的不是特别好;比如WeChartOCR.exe报错。2.原生微信安装:linux系统下的微信安装(ubuntu20.04)--微信适配的最好,反应最快,但是微信版本只到2.1.1,版本太老,很多功能都没有。3.深度deepin-wine6安装微信:ubuntu20.04+系统deepin-wine6安装新版微信--综合比较好,当前个人使用此种方法1个月,微信版本3.4;没什么大问题,尚可。一、WineHQ7.0安装微信

  5. 微信小程序订餐系统 - 2

    对传统的餐饮商家来说,小程序很好地解决了餐厅线下线上连接的问题,在引流获客、节约人力、营销宣传、塑造会员体系、改善消费体验等方面都有很大帮助。小程序点餐可以帮助餐饮企业节省一大把人力开支。一个包含扫码点单、菜品管理、优惠券推送、外卖配送的小程序,商家花几万元就能完成开发测试并投入。商家为什么要开通“扫码点餐”1.解决服务员不够用的问题。2.不怕顾客跑单漏单。3.在微信就能管理菜品、查看营业额。4.订单小票显示顾客桌号和已点菜品。5.可在“附近的小程序”找到您的门店。如今餐饮业常用的三种经营模式:1堂食点单模式客人通过小程序堂食点单。商家可以在微信扫码点餐小程序管理后台根据自己店内情况来设置不同

  6. 最新版人脸识别小程序 图片识别 生成二维码签到 地图上选点进行位置签到 计算签到距离 课程会议活动打卡日常考勤 上课签到打卡考勤口令签到 - 2

    技术选型1,前端小程序原生MINA框架cssJavaScriptWxml2,管理后台云开发Cms内容管理系统web网页3,数据后台小程序云开发云函数云开发数据库(基于MongoDB)云存储4,人脸识别算法基于百度智能云实现人脸识别一,用户端效果图预览老规矩我们先来看效果图,如果效果图符合你的需求,就继续往下看,如果不符合你的需求,可以跳过。1-1,登录注册页可以看到登录页有注册入口,注册页如下我们的注册,需要管理员审核,审核通过后才可以正常登录使用小程序1-2,个人中心页登录成功以后,我们会进入个人中心页我们在个人中心页可以注册人脸,因为我们做人脸识别签到,需要先注册人脸才可以进行人脸比对,进

  7. 微信小程序切换云环境 - 2

    在开发微信小程序的时候,我们可能需要开发环境和测试环境,或者其他环境,下面是切换环境的方法。首先需要明确的是:前端的页面代码是不区分环境的,环境的区分指的是云函数、云数据库、云存储这些。1、更改云函数的使用云环境这里我们从cloud1更改为test-cloud,这个改完是没有用的,因为在前端代码指定了使用的云环境。cloudfunctions文件和miniprogram文件虽然都在一个目录下,但是这两个没有直接联系。2、在evList.js中添加自己云环境evList.js存储了云环境列表,这里把test-cloud加到这个列表里,需要填写envId和alias,参照cloud1写就行。3、更

  8. Spring Boot中的微信支付(小程序) - 2

    前言微信支付是企业级项目中经常使用到的功能,作为后端开发人员,完整地掌握该技术是十分有必要的。一、申请流程和步骤图1-1注册微信支付账号获取微信小程序APPID获取微信商家的商户ID获取微信商家的API私钥配置微信支付回调地址绑定微信小程序和微信支付的关系搭建SpringBoot工程编写后台支付接口发布部署接口服务项目使用微信小程序或者UniAPP调用微信支付功能支付接口的封装配置jwt或者openid的token派发原生微信小程序完成支付对接二、注册商家2.1商户平台商家或者企业想要通过微信支付来进行商品的销售,必须先通过微信平台(pay.weixin.qq.com)去将商家进行注册。注册成

  9. 微信小程序顶部标题栏与胶囊对齐 - 2

    介绍    最近在做微信小程序时,顶部标题栏总是与胶囊对不齐。往往是在这款手机上对齐了,在另外一款手机差很多。我在查阅资料后,提出了一种方法解决这个问题,即:在页面onLoad或组件created时,利用微信小程序提供的API,获取系统状态栏高度和胶囊信息,进而动态调整顶部标题栏样式。在苹果、小米、荣耀手机做验证,能做到精准对齐。理论        胶囊样式应该是垂直居中,有1px的border,border-radius为18px。        若要使顶部标题栏与胶囊对齐,则其高度必须是导航栏高度,标题栏内容也要垂直居中,顶部标题栏的外边距或内边距必须是状态栏高度。        如果顶部

  10. 软件工程毕业设计课题(81)微信小程序毕业设计PHP校园跑腿小程序系统设计与实现 - 2

        项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于微信校园跑腿小程序系统,前台用户使用小程序发布跑腿任何和接跑腿任务,后台管理使用基于PHP+MySql的B/S架构;通过后台管理跑腿的用户、查看跑腿信息和对应订单。意义:手机网络时代,大学生通过手机网购日常用品、外卖外卖、代取快递等已不再是稀奇的事情。此外,不少高校还流行着校园有偿工作,校园跑腿就成了大学生创业服务项目。        因为你在校园里,所以不会有进入的限制。并不是所有的外卖平台都可以随意进入校园,比如小黄和小蓝的双打外卖平台。许多大学禁止送餐进入学校,更不用说送餐进入宿舍了。这一措施使得校园服务市场的竞争相对不

随机推荐