小程序-1(项目结构+代码结构+宿主环境+组件)

目录

1.小程序简介

2.小程序的项目结构

小程序的基本组成结构

小程序的页面组成部分

json配置文件的作用

app.json文件

project.config.json文件

sitemap.json文件

页面的.json文件

新建小程序页面

修改项目首页

3.小程序的代码结构

wxml和html的区别

wxss和css的区别

js文件的分类

4.小程序的宿主环境

什么是宿主环境

小程序的宿主环境

小程序的通信模型

小程序启动的过程

页面渲染的过程

5.小程序的组件

常用的视图容器类组件

view组件的使用

scroll-view组建的基本使用

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

swiper组件的常用属性

text组件的基本使用

rich-text组件的基本使用

button按钮的基本使用

image图片组件

API的三大分类


1.小程序简介

运行环境不同:小程序运行在微信环境中

API不同:运行环境不同,小程序中无法调用DOM和BOM的API。但是,小程序可以调用微信环境提供的各种API,如:地理定位、扫码和支付

开发模式不同:网页的开发模式——浏览器+代码编辑器

                         小程序的开发模式——申请小程序开发账号、

                                                             安装小程序开发者工具、

                                                             创建和配置小程序项目

2.小程序的项目结构

小程序的基本组成结构

  • pages 用来存放所有小程序的页面
  • utils 用来存放工具性质的模块(如:格式化时间的自定义模块)
  • app.js 小程序项目的入口文件
  • app.json 小程序项目的全局配置文件
  • app.wxss 小程序项目的全局样式文件
  • project.config.json 项目的配置文件
  • sitemap.json 用来配置小程序及其页面是否允许被微信索引

小程序的页面组成部分

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

  • .js文件(页面的脚本文件,存放页面的数据、事件处理函数等)
  • .json文件(当前页面的配置文件,配置窗口的外观、表观等)
  • .wxml文件(页面的模块结构文件)
  • .wxss文件(当前页面的样式表文件)

小程序是由这四个基本文件组成的

json配置文件的作用

json是一种数据格式,以配置文件的形式出现

小程序中:通过不同的.json配置文件,可以对小程序项目进行不同级别的配置

小程序项目中有4种json配置文件

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

app.json文件

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

四个配置项的作用:

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

"style":“v2”  表示显示的是最新版本,删除该行后,版本会改变

project.config.json文件

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

  • setting中保存了编译相关的配置
  • projectname保存的是项目名称
  • appid保存的是小程序的账号id

可打开“详情”-“本地设置”中对想实现的功能进行勾选

sitemap.json文件

小程序内搜索,效果类似于PC网页的SEO,sitemap.json文件用来配置小程序页面是否允许微信索引,当用户的搜索关键字和页面的索引匹配成功时,小程序的页面将可能展示在搜索结果中

"action":"allow"时可以搜索出来并显示    disallow 不会显示出来

想要关闭终端的黄色提示,可以在project.config.json的setting中配置字段checkSiteMap为false

页面的.json文件

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

即app.json满足全局的配置要求,而页面的.json文件仅满足自身的配置要求

新建小程序页面

只需要在app.json->pages中新增页面的存放路径,工具会自动创建对应的页面文件

修改项目首页

只需要调整app.json->pages数组中页面路径的前后顺序,即可修改项目的首页

3.小程序的代码结构

wxml和html的区别

标签名称不同: HTML(div,span,img,a)

                          WXML(view,text,image,navigator)

属性节点不同:<a href="#">超链接</a>

                        <navigator url="/pages/home/home"></navigator>

提供了类似于Vue中的语法模板:数据绑定、列表渲染、条件渲染

wxss和css的区别

新增了rpx尺寸单位:

  • CSS中需要手动进行像素单位换算,例如rem
  • WXSS在底层支持新的尺寸单位rpx,在不同大小的屏幕上小程序会自动进行换算

提供了全局的样式和局部样式:

  • 项目根目录中的app.wxss会作用于所有小程序页面
  • 局部页面的.wxss样式仅对当前页面生效

WXSS仅支持部分CSS选择器

.class和#id       element          并集选择器、后代选择器          ::after和::before等伪类选择器

js文件的分类

app.js 是整个小程序项目的入口文件,通过调用App()函数来启动整个小程序

页面的.js文件 是页面的入口文件,通过调用Page()函数来创建并运行页面

普通的.js文件  是普通的功能模块文件,用来封装公共函数或属性供页面使用

4.小程序的宿主环境

什么是宿主环境

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

小程序的宿主环境

手机微信是小程序的宿主环境,小程序借助宿主环境提供的能力,可以完成许多普通网页无法完成的功能

小程序宿主环境包含的内容:通信模型、运行机制、组件、API

小程序的通信模型

渲染层和逻辑层之间的通信:由微信客户端进行转发

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

小程序启动的过程

页面渲染的过程

5.小程序的组件

常用的视图容器类组件

view 

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

scroll-view

  • 可滚动的视图区域
  • 常用来实现滚动效果

swiper和swiper-item

  • 轮播图容器组件和轮播图item组件

view组件的使用

scroll-view组建的基本使用

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

在渲染页面时,要将想要展现的页面放在app.json中的第一个

再给每个子元素中的元素设置颜色时,注意格式的规范性

swiper组件的常用属性

indicator-dots  表示是否显示小圆点

interval 表示自动切换的时间间隔,注意单位是毫秒,所以数值就是几千几千

circular 表示衔接滑动,到最后一页后重新开始

text组件的基本使用

只有将文本放进text中才能实现长按复制的效果   注意里面要添加上selectable

<text selectable>135266888</text>

rich-text组件的基本使用

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

在特定场景下,需要用到HTML标签,就用rich-text组件进行渲染

button按钮的基本使用

<button></button> 默认按钮

后面加上size="mini",是小尺寸按钮

后面加上plain,是镂空按钮

image图片组件

<image src="" mode="heightFix"></image>

API的三大分类

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构(Java):LinkedList集合Stack集合

1、集合类LinkedList 1.1 什么是LinkedList LinkedList的底层是一个双向链表的结构&#xff08;故不支持随机访问&#xff09;&#xff1a; 在LinkedList中&#xff0c;定义了first和last&#xff0c;分别指向链表的首节点和尾结点。 每个节点中有一个成员用来存储数据&…

postgresql简单导出数据与手动本地恢复(小型数据库)

问题 需要每天手动备份postgresql。 步骤 导出数据 /opt/homebrew/opt/postgresql16/bin/pg_dump --file/Users/zhangyalin/backup_sql/<IP地址>_pg-2024_07_15_17_30_15-dump.sql --dbname<数据库名> --username<用户名> --host<IP地址> --port54…

Python array的特点及使用

1、Python array的特点及使用 1.1、python array为什么只能接收指定类型数据 array 模块提供了一种叫做 array 的数据结构&#xff0c;它表示一块连续的内存空间&#xff0c;所有的元素必须是相同的类型。这是因为在内存中&#xff0c;数组元素存储在连续的位置上&#xff0c…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 游乐园门票 (200分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; 最新华为O…

数据结构java笔记

线性表 数组 物理地址连续、逻辑地址连续。数组长度是固定的&#xff0c;不能动态增长或缩小&#xff0c;数组中元素的类型相同&#xff08;适合用于元素个数固定&#xff0c;且快速用下标访问&#xff09; ArrayList&#xff08;动态数组&#xff09; 物理地址连续、逻辑地…

【C++练级之路】【Lv.26】类型转换

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《算法神殿》《数据结构世界》《进击的C》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 一、C风格类型转换1.1 隐式类型转换1.2 显式类型转换 二、C风格类型转换2.1 static_cast2.2 dynamic_cast2.3…

【C++】—— 初识C++

【C】—— 初识C 一、什么是 C二、C 的发展历史三、C 版本更新四、C 的重要性五、C 在工作领域中的运用六、C 书籍推荐&#xff1a; 一、什么是 C C语言 是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的程序&#xff0c;需要…

【eNSP模拟实验】单臂路由实现VLAN间通信

实验需求 如下图所示&#xff0c;辅导员办公室需要访问处在不同vlan的学生管理服务器的文件&#xff0c;那么如何实现两台终端相互通信呢&#xff1f;我们可以使用单臂路由的方式来实现。 单臂路由&#xff08;router-on-a-stick&#xff09;是指在路由器的一个接口上通过配置…

小型医疗门诊挂号收费后台系统源码 医院管理系统后台thinkphp内核源码(带微信登录)

源码简介&#xff1a; 好用的小型医疗门诊后台管理系统的源码&#xff0c;就是那种医院管理用的&#xff0c;核心是用thinkphp做的。这个系统源码啊&#xff0c;功能多&#xff0c;用起来也方便。它还支持第三方配置和微信登录。 这玩意儿是基于ThinkPHP搞出来的医疗门诊系统…

AJAX知识点(详解)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

Flowable-流程图标与流程演示

BPMN 2.0是业务流程建模符号2.0的缩写。它由Business Process Management Initiative这个非营利协会创建并不断发展。作为一种标识&#xff0c;BPMN 2.0是使用一些符号来明确业务流程设计流程图的一整套符号规范&#xff0c;它能增进业务建模时的沟通效率。目前BPMN2.0是最新的…

持续集成01--Git版本管理及基础应用实践

前言 本系列文章旨在深入探讨持续集成/持续部署&#xff08;Continuous Integration/Continuous Deployment, CI/CD&#xff09;流程中的各个环节&#xff0c;而本篇将聚焦于Git版本管理及其基本应用。通过本文&#xff0c;读者将了解到Git的基本原理、安装配置、基本命令以及如…

高校动作捕捉与数字人开发实训室方案:助推高校开设虚拟数字人微专业

目前一些学校除了传统的实训室建设之外&#xff0c;部分院校会建设一些“微专业”&#xff0c;专业方向与AIGC以及虚拟数字人有关&#xff0c;通过引进一些虚拟数字人以及全身动作捕捉设备相关的产品和系统工具&#xff0c;进行设计课程方案&#xff0c;比如虚拟人直播&#xf…

Vue3学习体验(一)

搭建工程 使用vue-cli脚手架创建vue3工程 vue create vue3-app-vue-cliVue-cli官网&#xff1a;https://cli.vuejs.org/zh/guide/installation.html 使用vite搭建vue3工程 npm init表示临时的下载vite应用来创建vue3工程&#xff0c;工程名称为vue3-app-vite npm init vit…

银河麒麟高级服务器操作系统V10加固操作指南

1:检查系统openssh安全配置: 2:检查是否设置口令过期前警告天数: 3:检查账户认证失败次数限制: 修改/etc/pam.d/system-auth文件中deny的参数即可 4:检查是否配置SSH方式账户认证失败次数限制:

SAP DR创建借项凭证简介

DR创建借项凭证简介 创建借项凭证请求的详细步骤1. 进入创建销售订单的界面2. 选择销售凭证类型3. 输入销售组织数据4. 输入客户和参考数据5. 添加项目明细6. 检查和保存创建实际的借项凭证借项凭证后台配置定义凭证类型定义项目类别定义销售开票类型借项凭证请求的业务意义跟踪…

@RequestBody注解的使用及源码解析

前言 RequestBody 注解是我们进行JavaEE开发&#xff0c;最常见的几个注解之一&#xff0c;这篇博文我们以案例和源码相结合&#xff0c;帮助大家更好的了解 RequestBody 注解 使用案例 1.自定义实体类 Data NoArgsConstructor AllArgsConstructor public class User {priv…

非对称加解密和签名

非对称加解密特点 一对密钥&#xff0c;公钥和私钥。私钥自己持有&#xff0c;公钥公开给通信的对方。 如果公钥用作加密&#xff0c;那么私钥用作解密。 如果私钥用做加密&#xff0c;那么公钥用作解密。 如果数据量少可用非对称加密算法直接加密。 如果数据量大&#xff0c;…

【双色转模拟调光磁吸灯应用方案】调光线性度好 调光频率1K以上都兼容 LED护眼教室黑板灯降压恒流驱动IC芯片FP7195

文章目录 前言 一、行业要求和痛点 1、设计空间小&#xff0c;双路调光调色不容易排布 2、磁场对调光的影响 二、FP7195如何解决这些要求和痛点 1、FP7195实际应用双色温调光电路框架 2、FP7195的转模拟调光技术 总结 前言 磁吸灯作为一种时尚、实用的家居装饰灯具&#xff0c;…

javaweb学习

javaweb就是实现浏览器和服务器之间的交互 1、服务器配置 Run->Edit Configurations&#xff0c;点击右上角的号&#xff0c;选择Tomcat Server的local&#xff1a; 选择server下的Configure...&#xff0c;在弹出的界面里点击有上角的号&#xff0c;选择自己解压的合适的t…