微信小程序——认识微信小程序

news2024/12/25 9:19:08

认识小程序

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

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

微信公众平台:

微信公众平台 (qq.com)

微信开发文档

微信官方文档 | 微信开放文档 (qq.com)

获取AppID

在注册微信公众平台之后,可以在个人中心查看自己的AppID,这个ID就是用在小程序的开发中。

小程序代码的构成——项目结构

了解项目的基本组成结构

  1. pages用来存放所有小程序的页面
    1. index是默认页面所在的文件夹
  2. .eslint.js Eslint 配置文件,在安装eslint之后可以使用这个文件配置eslint
  3. app.js小程序项目的入口文件
  4. app.json小程序项目的全局配置文件
  5. app.wxss小程序项目的全局样式文件
  6. project.config.json项目的配置文件
  7. sitemap.json用来配置小程序及其页面是否允许被微信索引

小程序页面的组成部分

小程序官方建议把所有小程序的页面,都存放在pages目录中,以单独的文件夹存在,也即是说微信希望我们把与这个页面有关的文件,包括页面本体文件,页面样式文件,页面js文件等与页面相关的所有文件都放在一个文件夹中,方便管理。

其中,每个页面由四个基本文件组成,他们分别是

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

1.JSON配置文件的作用

JSON是一种数据格式,在实际开发中,JSON总是以配置文件的形式出现。小程序项目中也不例外:通过不同的.json配置文件,可以对小程序项目进行不同级别的设置

小程序项目中有4中json配置文件,分别是:

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

2.app.json文件

app.json是当前小程序的全局配置,包括了小程序的所有页面路径,窗口外观,界面表现,底部tab等。Demo项目里面的app.json配置内容如下:

  1. pages:用来记录当前小程序所有页面的路径
  2. windows:全局定义小程序所有页面的背景色,文字颜色等
  3. style:全局定义小程序组件所使用的样式版本,默认v2为新版样式,删除即可使用旧版样式

project.config.json文件

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

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

sitemap.json文件

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

当开发者允许微信索引时,微信会通过爬虫的形式,为小程序的页面内容建立索引。当用户的搜索关键字和页面的索引匹配成功的时候,小程序的页面将很可能展示在搜索结果中。

page属性的星号表示所有的页面都配置索引,action的allow属性表示配置索引,如果不想被索引则将action的值配置为disallow。

sitemap的索引提示是默认开启的,如需要关闭sitemap的索引提示,可在小程序项目配置文件poject.config.json的setting的字段checkSiteMap为false

这个好像在新版本中已经被删除了,没有这个属性,也没有这个提示。就算手动加上这个属性也不会有任何的效果。

页面的.json配置文件

小程序中的每一个页面,都可以使用.json文件来对本页面的窗口外观进行配置,页面中的配置项会覆盖掉全局配置文件中的相同配置项。

也就是说优先级是就近原则。

小程序的宿主环境——宿主环境简介

什么是宿主环境

宿主环境(host environment)指的是程序运行所必须的依赖环境。例如:

  1. Android系统和ios系统是两个不同的宿主环境。安卓版的微信App是不能在ios环境下运行的,所以,Android是安卓软件的宿主环境,脱离了宿主环境的软件是没有任何意义的。

小程序的宿主环境

手机微信是小程序的宿主环境。

小程序借助宿主环境提供的能力,可以完成许多普通网页无法完成的功能,例如:

微信扫码,微信支付,微信登陆,地理定位,ETC……

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

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

1.通信模型——通信的主体

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

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

小程序的通信模型

  1. 渲染层和逻辑层的通信
    1. 由微信客户端进行转发
  2. 逻辑层和第三方服务器之间的通信
    1. 由微信客户端进行转发

2.运行机制

小程序启动的过程

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

页面渲染的过程

  1. 加载解析页面的.json配置文件
  2. 加载页面的.wxml模板和.wxss样式
  3. 执行页面的.js文件,调用Page()创建页面实例
  4. 页面渲染完成

3.组件

小程序中组件的分类

小程序中的组件也是由宿主环境提供的,开发者可以基于组件快速搭建出漂亮的页面结构。官方把小程序的组件分成了9大类,分别是:

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

其中前四个是比较重要的组件,是重点关注的对象

常用的视图容器类组件

  1. view
    1. 普通的视图区域
    2. 类似于HTML中的div,是一个块级元素
    3. 常用来实现页面的布局区域
  2. scroll-view
    1. 可滚动的试图区域
    2. 常用来实现滚动列表效果
  3. swiper和swiper-item
    1. 轮播图容器组件和轮播图item项组件

view组件的基本使用

实现flex横向布局效果:

结构代码如下:

<view class="container">

  <view>A</view>

  <view>B</view>

  <view>C</view>

</view>

样式代码如下:

.container view{

  text-align: center;

  line-height: 100px;

  width: 100px;

  height: 100px;

}

.container{

  justify-content: space-around; /* 均匀排列每个元素每个元素周围分配相同的空间 分散对齐*/

  display: flex; /* 弹性布局块内元素 横向布局*/

}

.container view:nth-child(1){

  background-color: red;

}

.container view:nth-child(2){

  background-color: blue;

}

.container view:nth-child(3){

  background-color: yellow;

}

scroll-view组件的基本使用

实现如图所示的纵向滚动效果:

结构代码如下:

<scroll-view class="scroll" scroll-y>

  <view>A</view>

  <view>B</view>

  <view>C</view>

</scroll-view>

样式代码如下:

.scroll{

  margin-top: 10px;

  height: 120px;

  text-align: center;

  line-height: 100px;

  margin-left: 15px;

  width: 100px;

  border: 1px solid red;

}

.scroll view:nth-child(1){

  background-color: lightblue;

}

.scroll view:nth-child(2){

  background-color: lightpink;

}

.scroll view:nth-child(3){

  background-color: lightgreen;

}

实现滚动效果有两个属性是必须的,一个是在scroll-view的标签上添加scroll-y的属性,表示纵向滚动;如果是scroll-x表示横向滚动。并且需要在scroll-view的样式上添加一个固定的高度,这两个条件都达成才能实现组件的滚动效果。

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

实现如图如图的轮播图效果:

结构代码如下:

<swiper class="swiper">

  <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>

样式代码如下:

.swiper{

  margin-top: 10px;

  margin-left: 15px;

  margin-right: 15px;

  height: 150px;

}

.swiper view{

  height: 100%;

  line-height: 150px;

  text-align: center;

}

swiper-item:nth-child(1) .item{

  background-color: lightpink;

}

swiper-item:nth-child(2) .item{

  background-color: lightgreen;

}

swiper-item:nth-child(3) .item{

  background-color: lightskyblue;

}

swiper的常用组件以及属性

  1. indicator-dots:显示当前轮播图顺序的指示点

属性

类型

默认值

说明

indicator-dots

boolean

false

是否显示面板指示点

indicator-color

color

rgba(0,0,0,3)

指示点颜色

indicator-active-color

color

#000000

当前选中的指示点颜色

autoplay

boolean

false

是否自动切换

interval

number

5000

自动切换时间间隔

circular

boolean

false

是否采用衔接滑动

<swiper class="swiper" indicator-dots autoplay circular interval="3000">

比如上面的结构代码中就是添加了衔接滚动和自动切换,并且自动切换时间设置为3秒的属性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1011839.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++之生成详细汇编代码(二百一十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

Python绘制柱状图之可视化神器Pyecharts

文章目录 安装Pyecharts绘制基本柱状图自定义柱状图调整柱状图颜色添加数据标签调整柱状图样式添加动画效果堆叠柱状图横向柱状图 更多类型的柱状图堆叠柱状图百分比堆叠柱状图极坐标柱状图 结论 &#x1f389;欢迎来到AIGC人工智能专栏~Python绘制柱状图之可视化神器Pyecharts…

让AI为您自动生成独特的商品标题,商品描述和营销文案

做外贸的朋友你知道吗&#xff1f;AI可为您自动生成独特的商品标题&#xff0c;商品描述和营销文案 AI生成的商品标题是一项强大的工具&#xff0c;尤其在外贸和跨境电商行业中&#xff0c;它可以帮助您轻松创造引人注目的标题&#xff0c;吸引潜在客户。以下是一个针对外贸和…

JDK 动态代理

动态代理机制 Java 里面&#xff0c;动态代理是通过 Proxy.newProxyInstance()方法来实现的&#xff0c;它需要传入被动态代理的接口类 // 生成代理文件写入磁盘 System.getProperties().put("sun.misc.ProxyGenerator.saveGeneratedFiles","true");ITrad…

DP专题5 不同路径||

题目&#xff1a; 思路&#xff1a; 这道题&#xff0c;思路跟 不同路径| 思路一样&#xff0c;只是不同的是&#xff0c;有障碍物这一块&#xff0c;我们的二维dp数组初始化的时候&#xff0c;要注意&#xff0c;机器人只能向右和向下&#xff0c;所以初始化第一行和第一列的…

黑龙江省DCMM认证、CSMM认证、CMMM认证、知识产权等政策奖励

2023年8月28日 为深入落实党的二十大精神&#xff0c;认真落实省第十三次党代会关于创新龙江建设的部署要求&#xff0c;全面贯彻新发展理念&#xff0c;融入和服务构建新发展格局&#xff0c;实施创新驱动发展战略&#xff0c;着力建设创新龙江&#xff0c;不断塑造振兴发展新…

基于Yolov8网络进行目标检测(二)-安装和自定义数据集

关于Yolov8的安装在前一个环节忽略了&#xff0c;其实非常简单&#xff0c;只需要以下两个步骤&#xff1a; 1、安装pytorch pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 2、安装ultralytics pip install ultralytics 为什…

功率放大器驱动压电陶瓷有哪些应用

功率放大器在压电陶瓷材料领域的应用。首先&#xff0c;介绍了压电陶瓷的基本概念和特性。然后&#xff0c;阐述了功率放大器的基本原理和分类。接着&#xff0c;分析了功率放大器在压电陶瓷材料领域的应用&#xff0c;包括声波发生器、超声波清洗器、超声波切割器、医疗超声波…

企业架构LNMP学习笔记44

小工具&#xff1a; memcached_tool.php软件&#xff0c;可以查看memcached运行状态、key&#xff08;item&#xff09;的数量、内存使用量等。 1&#xff09;上传memcached_tool.php到web服务器上&#xff1a; 上传到虚拟机主机可以访问的目录即可。需要php的运行环境&…

C语言——指针进阶(三)

目录 一.前言摘要 二.排序函数qsort的模拟实现 三.指针和数组笔试题解析 一.前言摘要 讲述关于strlen和sizeof对于各种数组与指针的计算规则与用法。另外还有qsort函数的模拟实现&#xff08;可以排序任意类型变量&#xff09; 二.排序函数qsort的模拟实现 目标&#xff1a;…

如何选择适合企业的SQL开发工具

在当今数字化时代&#xff0c;数据是企业的核心资产之一。随着数据规模和数据类型的不断增长&#xff0c;数据库管理变得愈发复杂和关键。许多企业用户在数据库管理方面都面临着一系列难题&#xff1a; 核心数据库被随意变更&#xff1a;核心库的波动通常会对企业核心业务产生重…

还没用熟 TypeScript 社区已经开始抛弃了

根据 rich-harris-talks-sveltekit-and-whats-next-for-svelte 这篇文章的报道&#xff0c; Svelte 计划要把代码从 TS 换到 JS 了。 The team is switching the underlying code from TypeScript to JavaScript. That and the update will then allow the team to incorporate…

Enhancer-轻量化的字节码增强组件包

一、问题描述 当我们的业务发展到一定阶段的时候&#xff0c;系统的复杂度往往会非常高&#xff0c;不再是一个简单的单体应用所能够承载的&#xff0c;随之而来的是系统架构的不断升级与演变。一般对于大型的To C的互联网企业来说&#xff0c;整个系统都是构建于微服务的架构…

金和OA GetSqlData.aspx 远程命令执行漏洞

一、漏洞简介 金和OA协同办公管理系统C6软件共有20多个应用模块,160多个应用子模块,涉及的企业管理业务包括协同办公管理、人力资源管理、项目管理、客户关系管理、企业目标管理、费用管理等多个业务范围,从功能型的协同办公平台上升到管理型协同管理平台,并不断的更新完善…

一款自定义软件开发平台源码 支持企业应用的专业低代码开发

低代码PaaS平台源码 采用对象方式实现字段、API的字段类型&#xff0c;引入RPA实现表自动化建模&#xff1b;再使用选择方式对地段功能进行选择定义甚至可以插入代码进行自定义。 数字化转型的迫切需求 随着数字科技的发展&#xff0c;各行各业对于新技术解决方案的需求也在逐…

小节8:Python之文件操作

1、文件在哪里&#xff1f; 如果用代码对文件进行操作&#xff0c;需要先找到那个文件 MacOS/Linux&#xff1a;斜杠/ 表示根目录&#xff0c;一切的文件、目录都存放在根目录下面。 Windows系统&#xff1a;就不一样了&#xff0c;它每一个磁盘分区都有自己的根目录&#x…

算法:二分法---寻找H指数

1、题目&#xff1a; 给你一个整数数组 citations &#xff0c;其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义&#xff1a;h 代表“高引用次数” &#xff0c;一名科研人员的 h 指数 是指他&#xff0…

港联证券:基本面分析的基本知识?

作为一种股票投资剖析办法&#xff0c;根本面剖析是用来研究一家公司在剖析期内的运营状况的一种办法&#xff0c;它重视公司的财政数据、盈余才能、市场占有率以及宏观经济要素等方面&#xff0c;为投资者供给了一个深化了解公司价值的方法。下面&#xff0c;本文将从多个视点…

C语言 —— 初步入门知识(第一个C语言程序、数据类型、变量常量、字符与注释)

本篇文章介绍C语言的基础知识&#xff0c;使读者对C语言能够有一个大概的认识. 不会细写每一个知识点, 但是能够入门C语言, 进行初步的C语言代码阅读. 首先, 什么是语言? 对于人和人之间进行交流的语言, 我们知道, 可以通过汉语, 英语, 日语等语言进行交流. 那么对于人和计算…

spring_注解笔记

spring使用注解开发 文章目录 1.前提1 Bean2 属性注入3 衍生的注解4.自动装配5 作用域 1.前提 步骤1&#xff1a; 要使用注解开发&#xff0c;就必须要保证AOP包的导入 步骤2&#xff1a; xml文件添加context约束 步骤3&#xff1a; 配置注解的支持 <context:annotation-…