微信小程序-day01

文章目录

  • 前言
    • 微信小程序介绍
  • 一、为什么要学习微信小程序?
  • 二、微信小程序的历史
    • 创建开发环境
      • 1.注册账号
      • 2.获取APPID
  • 三、下载微信开发者工具
      • 1.创建微信小程序项目
      • 2.填写相关信息
      • 3.项目创建成功
  • 四、小程序目录结构
    • 项目的主体组成结构
  • 总结


前言

微信小程序介绍

微信小程序,简称小程序,英文名 Mini Program ,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。
小程序的主要开发语言是 JavaScript ,小程序的开发同普通的网页开发相比有很大的相似性。对于前端开发者而言,从网页开发迁移到小程序的开发成本并不高,但是二者还是有些许区别的。

​网页开发渲染线程和脚本线程是互斥的,这也是为什么长时间的脚本运行可能会导致页面失去响应,而在小程序中,二者是分开的,分别运行在不同的线程中。网页开发者可以使用到各种浏览器暴露出来的 DOM API,进行 DOM 选中和操作。而如上文所述,小程序的逻辑层和渲染层是分开的,逻辑层运行在 JSCore 中,并没有一个完整浏览器对象,因而缺少相关的DOM API和BOM API。这一区别导致了前端开发非常熟悉的一些库,例如 jQuery、 Zepto 等,在小程序中是无法运行的。同时 JSCore 的环境同 NodeJS 环境也是不尽相同,所以一些 NPM 的包在小程序中也是无法运行的。

​网页开发者需要面对的环境是各式各样的浏览器,PC 端需要面对 IE、Chrome、QQ浏览器等,在移动端需要面对Safari、Chrome以及 iOS、Android 系统中的各式 WebView 。而小程序开发过程中需要面对的是两大操作系统 iOS 和 Android 的微信客户端,以及用于辅助开发的小程序开发者工具,小程序中三大运行环境也是有所区别的,如表所示:

运行环境逻辑层渲染层
iOSJavaScriptCoreWKWebView
安卓V8chromium定制内核
小程序开发者工具NWJSChrome WebView

网页开发者在开发网页的时候,只需要使用到浏览器,并且搭配上一些辅助工具或者编辑器即可。小程序的开发则有所不同,需要经过申请小程序帐号、安装小程序开发者工具、配置项目等等过程方可完成。


一、为什么要学习微信小程序?

  1. 微信有海量用户,而且粘性很高,在微信里开发产品更容易触达用户;
  2. 开发适配成本低;
  3. 容易小规模试错,然后快速迭代;
  4. 跨平台;
  5. 薪资更高;

二、微信小程序的历史

2016年1月11日,微信之父张小龙时隔多年的公开亮相,解读了微信的四大价值观。张小龙指出,越来越多产品通过公众号来做,因为这里开发、获取用户和传播成本更低。拆分出来的服务号并没有提供更好的服务,所以微信内部正在研究新的形态,叫「微信小程序」 需要注意的是,之前是叫做「应用号」。
2016年9月21日,微信小程序正式开启内测。在微信生态下,触手可及、用完即走的微信小程序引起广泛关注。腾讯云正式上线微信小程序解决方案,提供小程序在云端服务器的技术方案。
2017年1月9日,微信推出的“小程序”正式上线。“小程序”是一种无需安装,即可使用的手机“应用”。不需要像往常一样下载App,用户在微信中“用完即走”。


创建开发环境

1.注册账号

访问微信公众平台,进行账号的注册。 小程序官方文档
操作步骤如下:

  • 点击立即注册
    在这里插入图片描述选择微信小程序
    在这里插入图片描述
    填写信息(建议使用全新的邮箱,没有注册过其他小程序或者公众号的。)
    在这里插入图片描述

2.获取APPID

微信小程序appid是微信小程序的应用标识。appid全称为Application
Identification,即应用程序标识,每个微信小程序都会有有一个原始的appid。它就跟人的身份证号一样是唯一的,不会跟其他的小程序编号重复。通过它,微信客户端才能确定你的小程序“身份”,并使用微信提供的高级接口。而想要获取某个小程序的appid,必须要该小程序的开发者或管理者进入后台查看才能获得,其它人是无法查看小程序appid的。
操作步骤如下:
一、点击开发管理
在这里插入图片描述二、点击开发设置,并复制appid
在这里插入图片描述

三、下载微信开发者工具

微信开发者工具

1.创建微信小程序项目

在这里插入图片描述

2.填写相关信息

在这里插入图片描述

3.项目创建成功

在这里插入图片描述

四、小程序目录结构

小程序框架提供了自己的视图层描述语言 WXML 和 WXSS ,以及 JavaScript ,并在视图层与逻辑层间提供了数据传输和事件系统,让开发者能够专注于数据与逻辑。小程序定义了四种类型的文件,分别用来表达结构、样式、逻辑、配置。
小程序文件结构和传统web对比

项目的主体组成结构

每个小程序的结构都是由两个主要部分构成:主体部分 + 各个页面。类似于许多框架,主体部分主要用于核心的配置,各个页面主要用于不同业务场景。

主体部分主要由3个文件构成:

  • app.js:小程序项目的入口文件
  • app.json:小程序项目的全局配置文件
  • app.wxss:小程序项目的全局样式文件

主体部分其它构成如下:

  • pages(目录):用来存放所有小程序页面,所有的页面都以单独的文件夹放在pages目录中
  • utils(目录):用来存放工具性质的模块(例如:格式化事件的自定义模块)
  • project.config.json:项目的配置文件
  • sitemap.json:用来配置小程序以及页面是否允许被微信索引
  • common(目录):由开发人员自己创建的样式库,里面封装个各种各样的图标,样式,需要使用可以直接调用,这是自己封装,创建项目时是没有的
  • components(目录):由开发人员自己创建的组件库,创建项目时是没有的,里面封装自己创建组件,可以重复利用,在相同需求时,就可以直接调用自己分装的组件,只要传递不动的数据即可,可以大大节省时间,提高代码的复用。
    在这里插入图片描述## 页面组成结构
    主体配置完成之后,就是对应业务开发了,也就是开发者最常操作的页面。小程序页面设计基本上也是遵循MVC结构进行构建。小程序官方建议把所有小程序的页面,都存放在pages目录中,以单独的文件夹存在,每个页面由4个基本文件组成,分别是:

页面组成:

  • [page.name].js:页面的脚本文件,用于创建页面对象,以及处理页面生命周期控制和数据处理 存放页面的数据、事件处理函数等)
  • [page.name].json:当前页面的配置文件,配置窗口的外观、表现等设置,会覆盖app.json中的window设置。
  • [page.name].wxml:Wei Xin Markup Language,用于定义页面元素结构的,语法遵循XML语法,不是HTML语法,类似HTML文件。
  • [page.name].wxss:Wei Xin Style Sheet,用于定义页面样式的语法,语法遵循Css语法,扩展了css的基本用法和长度单位。
    在这里插入图片描述在这里插入图片描述

总结

总的来说,UniApp 的安装和使用相对简单,开发者只需要熟悉 Vue.js 和一些 UniApp 的相关概念,就可以快速上手开发跨平台应用。利用 UniApp,开发者可以高效地开发一套代码,同时发布到多个平台,节省开发成本,提高开发效率。
欢迎大家提出问题

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

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

相关文章

新 树莓派4B 温湿度监测 基于debian12的树莓派OS

前言 本文旨在完成通过外接温湿度传感器至树莓派使得树莓派不断记录并存储温湿度数据 这个领域有很多文章,但是部分文章已经缺乏了时效性,在最新系统不适用,本文目前适用 硬件 硬件连接 温湿度传感器常选用DHT11和DHT22,淘宝…

每日OJ题_哈希表③_力扣217. 存在重复元素

目录 力扣217. 存在重复元素 解析代码 力扣217. 存在重复元素 217. 存在重复元素 难度 简单 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。 示例 1: 输…

私域流量运营的关键要素和基本步骤

解锁增长的四大关键: 关键要素一:精准营销 精准营销是私域流量运营的核心所在。通过精细化运营和个性化服务,企业可以将普通用户转化为忠实粉丝,提高用户的粘性和转化率。采用数据驱动的精准营销策略,深度挖掘用户需求…

26-5 SQL 注入攻击 - 利用dnslog带回回显信息范例

这篇文章是属于安全渗透的文章,选错专栏了,平台的机制不允许我再改,只能这样了,要学习python脚本的读者可以直接忽略这篇文章。 很抱歉我问了客服客服也没法解决。。 环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 26-3 SQ…

Linux内核基础 - GICv3中断控制器常用寄存器描述

GICv3 寄存器概述 GICv3(通用中断控制器版本3)为ARM架构提供了一套先进的中断管理框架。它针对大型系统支持、高效虚拟化和增强的中断分发机制引入了改进。以下是标准寄存器、它们的地址偏移以及常见用途或功能的概述。 技术背景 GICv3 是为了满足现代…

HelpLook AI 升级!一键生成SEO设置关键要素

| 现代SEO营销为何选择与AI同行 众多企业面临SEO优化日趋复杂的挑战,投入的时间和资源不断攀升。然而,HelpLook利用AI技术,一键完成SEO关键词和描述的生成,无需额外付费或繁琐操作,轻松提升网站曝光和点击率&#xff…

Android 学习之追踪应用的安装情况

先上结论,急用的话直接看结论 结论一、借助 API 读取安装信息,然后上报二、借助手动埋点,然后上报三、对比 前提过程 结论 一、借助 API 读取安装信息,然后上报 通过 PackageManager 的 API,我们可以得知自身应用安装…

C语言代码 转换以下ASCII码为对应字符并输出它们,73,32,99,97,110,32,100,111,32,105,116,33

转换以下ASCII码为对应字符并输出它们&#xff0c; 73,32,99,97,110,32,100,111,32,105,116,33 代码示例&#xff1a; #include <stdio.h>int main() {int arr[] { 73,32,99,97,110,32,100,111,32,105,116,33 };int i 0;int sz sizeof(arr) / sizeof(arr[0]);whil…

【SSM】任务列表案例 基本CRUD SSM整合

文章目录 一、案例功能预览二、接口分析三、前端工程导入四、后端程序实现和测试4.1 准备4.2 功能实现4.2.1 分页查询显示4.2.2 添加计划4.2.2 删除计划4.2.3 修改计划 4.3 前后联调 一、案例功能预览 Github 地址 &#xff1a; ssm-integration-part 二、接口分析 学习计划…

【话题】2024年AI辅助研发趋势,有那些应用领域

大家好&#xff0c;我是全栈小5&#xff0c;欢迎阅读文章&#xff01; 此篇是【话题达人】系列文章&#xff0c;这一次的话题是《2024年AI辅助研发趋势》 目录 背景概念实践医药领域汽车设计领域展望未来文章推荐 背景 随着人工智能技术的持续发展与突破&#xff0c;2024年AI辅…

postman学习

一、如何学习postman工具 1、下载和安装 Postman&#xff1a; 首先&#xff0c;从 Postman 官方网站&#xff08;https://www.postman.com&#xff09;下载并安装 Postman 应用程序。 2、了解基本概念&#xff1a; 在开始学习之前&#xff0c;了解一些基本概念&#xff0c;…

BI数据分析案例详解:零售人货场分析该怎么做?

在当今快节奏、高竞争的商业环境中&#xff0c;人货场分析已成为企业成功的关键因素之一。科技的进步和数据的日益丰富使得企业对人流、货物流和场地布局的深入洞察变得愈发重要。通过科学的人货场分析&#xff0c;企业能更好地理解顾客行为、优化供应链、提高运营效率&#xf…

【wine】WINEDEBUG 分析mame模拟器不能加载roms下面的游戏 可以调整参数,快速启动其中一个游戏kof98

故障现象&#xff0c;MAME启动后&#xff0c;游戏都没有识别 添加日志输出&#xff0c;重新启动wine #!/bin/bashexport WINEPREFIX$(pwd)/.wine export WINESERVER$(pwd)/bin/wineserver export WINELOADER$(pwd)/bin/wine export WINEDEBUG"file,mame,warn,err"…

加速渲染:Blender与在线渲染农场的结合

​在数字艺术和三维设计的世界里&#xff0c;Blender软件因其强大的功能和灵活性而广受欢迎。然而&#xff0c;随着项目复杂性的增加&#xff0c;渲染时间也随之增长&#xff0c;成为艺术家和设计师面临的一大挑战。在线渲染农场的出现&#xff0c;为这一问题提供了革命性的解决…

C语言例:(m=a==b)||(n=a==b);求解m,n的值

题目&#xff1a;设int a0,b0,m0,n0;执行语句(mab)||(nab);求解m,n的值。 #include<stdio.h> int main(void) {int a0,b0,m0,n0;(mab)||(nab);printf("m%d\n",m);printf("n%d\n",n);return 0; } 优先级: () 优先 优先 a b -->为真&am…

python字符串转换成字典

1、使用eval()函数将字符串转换为字典: string ‘{“name”: “Alice”, “age”: 25}’ dictionary eval(string) 2、使用json模块的loads()函数将字符串转换为字典: import json string ‘{“name”: “Alice”, “age”: 25}’ dictionary json.loads(string) 3、使…

UVC框架下USB摄像头驱动之设置属性

1. 在视频驱动程序中设置属性主要涉及3个ioctl &#xff1a; VIDIOC_QUERYCTRL VIDIOC_G_CTRL VIDIOC_S_CTRL 2. 硬件上怎么设置属性呢&#xff1f; 2.1 UVC规划定义了那些属性&#xff1a;定义在uvc_ctrl.c里面的数组 static struct uvc_control_info uvc_ctrls[] {{.enti…

Crash Course Computer Science1

Hello world, Im Carrie Anne, and welcome to Crash Course Computer Science! Hello world&#xff01;我是 Carrie Anne&#xff0c;欢迎收看计算机科学速成课&#xff01; Over the course of this series, were going to go from bits, bytes, transistors and logic gat…

【软件测试面试】银行项目测试面试题+答案(二)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 面试题&#xff1…

Python模块和包全解析,一篇文章就够!

目录 1. 创建模块 2. 导入模块 3. 使用模块中的函数和变量 4. 什么是包&#xff1f; 5. 导入包和模块 5.1 相对导入&#xff08;Relative Import&#xff09; 5.2 绝对导入&#xff08;Absolute Import&#xff09; 6. 使用包中的模块 7. 包的初始化和清理 8. 常见的…