微信小程序框架-全面详解(学习总结---从入门到深化)

news2024/12/21 19:58:25

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

小程序的主要开发语言是 JavaScript ,小程序的开发同普通的网页 开发相比有很大的相似性。对于前端开发者而言,从网页开发迁移 到小程序的开发成本并不高,但是二者还是多少有些许区别的,例如:

 

 

体验小程序

开发者可使用微信客户端(6.7.2 及以上版本)扫码下方小程序码,体验小程序

 

微信小程序账号申请 

开发小程序的第一步,你需要拥有一个小程序帐号,通过这个帐号 你就可以管理你的小程序

申请帐号

进入小程序注册页根据指引填写信息和提交相应的资料,就可以拥 有自己的小程序帐号

注册地址:https://mp.weixin.qq.com/cgi-bin/wx?token=&lan g=zh_CN

 第一步:添加账号信息

 第二步:激活邮箱

 第三步:信息登记

温馨提示

这里我们能选择的是个人和企业,如果是个人注册选择个人 (我们这里选择个人),如果是企业注册选择企业

 

 第四步:主体信息登录

温馨提示

用户信息与微信注册用户信息保持一致

 

 第五步:进入控制台

单独进入管理平台地址:https://mp.weixin.qq.com/

 

 第六步:获取AppID

注意:目前对我们有用的是“开发管理 - 开发设置 - AppID”

 小程序的 AppID 相当于小程序平台的一个身份证,后续你会在很多 地方要用到 AppID

微信小程序开发者工具 

为了帮助开发者简单和高效地开发和调试微信小程序,我们推出了 微信开发者工具 使用小程序开发者工具,开发者可以完成小程序开发调试、代码查 看和编辑、小程序预览和发布等功能。

下载安装 

开发者工具下载地址

https://developers.weixin.qq.com/miniprogram/dev/devtoo ls/download.html

 安装如一般软件一样,并没有特别之处

创建项目

基础开发,我们要选择“JavaScript-基础模板”

 开发者工具说明

在微信开发者工具中,我们可以编写代码的同时查看运行结果和调试问题

 小程序目录结构

小程序包含一个描述整体程序的 app 和多个描述各自页面的 page

 描述整体的 app

 描述各自页面的 page

一个小程序页面由四个文件组成,分别是

 温馨提示

为了方便开发者减少配置项,描述页面的四个文件必须具有相同的路径与文件名

 1. 在微信小程序项目结构中, app.json 的作用是:小程序公共配置

 全局配置_Pages

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

温馨提示

未指定 entryPagePath 时,数组的第一项代表小程序的初始页面 (首页)

 Pages配置

小程序中新增/减少页面,都需要对 app.json 文件中 pages 数组进行修改

默认项目存在两个页面: index logs ,对应的 app.jsonpages 属性的配置:

"pages": [
    "pages/index/index",
    "pages/logs/logs"
]

增加页面 news 之后,修改 app.json 文件中的 pages 属性(其实页面创建出来,也会自动加载)

"pages": [
     "pages/news/news",
     "pages/index/index",
     "pages/logs/logs"
],

修改 pages/news/news.wxml 文件为: 

<text>news页面</text>

entryPagePath

指定小程序的默认启动路径(首页),在 app.json 配置文件中增加 entryPagePath

{
    "entryPagePath": "pages/index/index",
    "pages": [
        "pages/news/news",
        "pages/index/index",
        "pages/logs/logs"
   ],
}

 快捷生成页面方案

app.json 文件中的 pages 中直接添加路径,可以自动生成页面 例如:我们增加 about 页面路由,可以自动生成 about 页面

{
    "entryPagePath": "pages/index/index",
    "pages": [
        "pages/news/news",
        "pages/index/index",
        "pages/logs/logs",
        "pages/about/about"  
   ],
}

 1. 在微信小程序的 app.json 文件配置中 entryPagePath 的作用是:

指定小程序的默认启动路径(首页)

 全局配置_window

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

 常用属性

 修改 app.json 文件中的 window 属性配置

"window": {
    "navigationBarBackgroundColor": "#000000",
    "navigationBarTextStyle": "white",
    "navigationBarTitleText": "第一个小程序",
    "backgroundColor": "#000000",
    "backgroundTextStyle": "light",
    "enablePullDownRefresh":true,
    "onReachBottomDistance":50
},

 1. 在小程序的 window 配置中,那个是开启下拉刷新的属性:enablePullDownRefresh

全局配置_tabBar 

 如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏 可以切换页面),可以通过 tabBar 配置 tab 切换时显示的对应页面

常用属性

 温馨提示

其中 list 接受一个数组,只能配置最少 2 个、最多 5 个 tab

 List属性说明

属性类型必 填说明
pagePathstring页面路径,必须在 pages 中先定义
textstringtab 上按钮文字
iconPathstring图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。 当 position 为 top 时,不显 示 icon。
selectedIconPathstring选中时的图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。 当 position 为 top 时,不显示 icon。

修改 app.json 配置文件,增加 tabBar 属性配置

"tabBar": {
    "list": [{
        "pagePath": "pages/index/index",
        "text": "首页",
        "iconPath":"./images/home.png",
        "selectedIconPath":"./images/home_select.png"
   }, {
        "pagePath": "pages/news/news",
        "text": "新闻",
        "iconPath": "./images/news.png",
        "selectedIconPath": "./images/news_select.png"
   }]
},

 1. 在小程序的 tabbar 配置中,那个属性可以配置页面路径:pagePath

全局配置_tabBar属性 

 如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏 可以切换页面),可以通过 tabBar 配置项指定 tab 栏的表现,以 及 tab 切换时显示的对应页面。

 

 配置 app.json 文件中的 tabBar 的属性

"tabBar": {
    "color":"#999999",
    "selectedColor":"#ff0000",
    "backgroundColor":"#fff",
    "borderStyle":"black",
    "position":"bottom",
    "list": [{
        "pagePath": "pages/index/index",
        "text": "首页",
        "iconPath":"./images/home.png",
        "selectedIconPath":"./images/home_select.png"
   }, {
        "pagePath": "pages/news/news",
        "text": "新闻",
        "iconPath": "./images/news.png",
        "selectedIconPath": "./images/news_select.png"
   }]
},

1. 小程序的 tabbar 配置中,那个属性可以配置 tabbar 显示在顶部还是底部:position

 全局配置_常用其他配置

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

 style

微信客户端 7.0 开始,UI 界面进行了大改版。小程序也进行了基础 组件的样式升级。app.json 中配置 "style": "v2" 可表明启用新版的组件样式

 sitemapLocation

指明 sitemap.json的位置;默认为 'sitemap.json' 即在 app.json 同 级目录下名字的 sitemap.json 文件

networkTimeout 

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

 debug

可以在开发者工具中开启 debug 模式,在开发者工具的控制台面 板,调试信息以 info 的形式给出,其信息有 Page 的注册,页面路 由,数据更新,事件触发等。可以帮助开发者快速定位一些常见的 问题

debugOptions 

小程序调试相关配置项

 FPS 面板

为了便于开发者调试渲染层的交互性能,小程序基础库提供了选项 开启 FPS 面板,开发者可以实时查看渲染层帧率

 开启方式

"debugOptions": {
    "enableFPSPanel": true
}

温馨提示

必须在真机上才能看到

 permission

小程序接口权限相关设置

例如:小程序定位设置,配置如下

"permission": {
    "scope.userLocation": {
        "desc": "你的位置信息将用于小程序位置接口的效果展示"
   }
}

app.json 文件配置如下

{
    "entryPagePath": "pages/index/index",
    "pages": [
        "pages/news/news",
        "pages/index/index",
        "pages/logs/logs",
        "pages/about/about"
   ],
    "window": {
        "navigationBarBackgroundColor": "#000000",
        "navigationBarTextStyle": "white",
        "navigationBarTitleText": "第一个小程序",
        "backgroundColor": "#000000",
        "backgroundTextStyle": "light",
        "enablePullDownRefresh": true,
        "onReachBottomDistance": 50
   },
    "tabBar": {
        "color": "#999999",
        "selectedColor": "#ff0000",
        "backgroundColor": "#fff",
        "borderStyle": "black",
        "position": "bottom",
        "list": [{
            "pagePath": "pages/index/index",
            "text": "首页",
            "iconPath": "./images/home.png",
            "selectedIconPath": "./images/home_select.png"
       }, {
            "pagePath": "pages/news/news",
            "text": "新闻",
            "iconPath": "./images/news.png",
            "selectedIconPath": "./images/news_select.png"
       }]
   },
    "style": "v2",
    "sitemapLocation": "sitemap.json",
    "networkTimeout": {
        "request": 10000,
        "downloadFile": 10000
   },
    "debug": true,
    "permission": {
        "scope.userLocation": {
        "enablePullDownRefresh": true,
        "onReachBottomDistance": 50
   },
    "tabBar": {
        "color": "#999999",
        "selectedColor": "#ff0000",
        "backgroundColor": "#fff",
        "borderStyle": "black",
        "position": "bottom",
        "list": [{
            "pagePath": "pages/index/index",
            "text": "首页",
            "iconPath": "./images/home.png",
            "selectedIconPath": "./images/home_select.png"
       }, {
            "pagePath": "pages/news/news",
            "text": "新闻",
            "iconPath": "./images/news.png",
            "selectedIconPath": "./images/news_select.png"
       }]
   },
    "style": "v2",
    "sitemapLocation": "sitemap.json",
    "networkTimeout": {
        "request": 10000,
        "downloadFile": 10000
   },
    "debug": true,
    "permission": {
        "scope.userLocation": {
            "desc": "你的位置信息将用于小程序位置接口的效果展示"
       }
   },
    "debugOptions": {
        "enableFPSPanel": true
   }
}

1. 小程序全局配置中,那个属性可以开启 debug 调试模式:debug

单页面配置 

 app.json 中的部分配置,也支持对单个页面进行配置 可以在页面对应的 文件.json 文件来对本页面的表现进行配置

配置项 

 页面 文件.json 文件配置

虽然配置与 app.json 基本一致,但是注意,不在需要添加 window 作为父级

{
    "usingComponents": {},
    "navigationBarBackgroundColor": "#ffffff",
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "第二个页面",
    "backgroundColor": "#ffffff",
    "backgroundTextStyle": "light",
    "enablePullDownRefresh": true,
    "onReachBottomDistance": 50,
    "style":"v2"
}

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

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

相关文章

HCIP实验 4-1:路由引入与路由控制

实验 4-1 路由引入与路由控制 学习目的 掌握OSPF与ISIS相互路由引入的配置方法掌握通过地址前缀列表过滤路由信息的配置方法掌握通过Route-policy过滤路由信息的配置方法 拓扑图 场景 你是你们公司的网络管理员。公司网络中有两部分路由区域&#xff0c;一部分运行OSPF,另外…

【Proteus仿真】【51单片机】厨房天然气泄漏检测报警系统

文章目录一、功能简介二、软件设计三、实验现象联系作者一、功能简介 本项目使用Proteus8仿真51单片机控制器&#xff0c;使用LCD1602、按键、天然气、烟雾传感器、ADC&#xff0c;报警模块等。 系统运行后&#xff0c;LCD1602显示传感器检测的天然气浓度和烟雾浓度值。 可通…

中国土地交易数据库:300w数据中国土地高频交易数据2000-2022

土地交易是土地在流通过程中多方发生的经济关系&#xff0c;土地交易的行为主要是交换的土地所有权、使用权、租赁权、抵押权等。在我国&#xff0c;土地作为一种重要资源&#xff0c;其收购储备和交易行为都由国家进行统一管理。经过改革开放几十年的探索和实践&#xff0c;土…

手机投影到电脑显示 此设备不支持miracast,因此不能以无线投影到它

在家里使用手机的体感游戏,发现手机屏幕比较小,想要将其投影到自己的笔记本电脑上,这样看得就比较大了。然后我就打开笔记本电脑,操作如下: 如下图: 原文地址:手机投影到电脑显示 此设备不支持miracast&#xff0c;因此不能以无线投影到它 - 廖强的博客 但是结果我们就看到了…

Mysql安装配置和Mysql使用六千字详解!!

目录 课前导读 一、Mysql的安装和配置 二、数据库简介&#xff1a; 1、数据库中典型代表&#xff1a; 2、数据库类型&#xff1a; 3、Mysql简介&#xff1a; 4、客户端和服务器简介&#xff1a; 三、初始MySQL 四、数据库操作 五、表的基本操作 六、表的基础增删查改…

虚拟主机、WordPress 主机和云主机之间的区别

&#x1f482; 个人网站:【海拥】【摸鱼游戏】【神级源码资源网站】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 想寻找共同学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】&#x1f4ac; 免费且…

[附源码]JAVA毕业设计校园失物招领管理系统(系统+LW)

[附源码]JAVA毕业设计校园失物招领管理系统&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目…

港科夜闻|罗康锦教授获委任为香港科大工学院院长

关注并星标每周阅读港科夜闻建立新视野 开启新思维1、罗康锦教授获委任为香港科大工学院院长。该委任任期由2023年1月1日开始。罗康锦教授服务香港科大多年&#xff0c;是智慧交通系统、智慧城市和可持续发展的杰出学者&#xff0c;在学术研究方面屡获殊荣。罗教授拥有丰富的学…

阿里巴巴内部最新发布SpringCloud ALiBaBa全彩版

就在昨天&#xff0c;阿里巴巴发布了最新的SpringCloud ALiBaBa全解第三版同时也是全彩版&#xff0c;话不多说我们直接来看干货&#xff01; 由于文章的篇幅有限&#xff0c;下面只能为大家展示目录内容&#xff0c;需要领取完整版可以文末免费获取章节目录 微服务介绍 微服务…

Go 实现插入排序算法及优化

Go 实现插入排序算法及优化插入排序算法实现算法优化小结耐心和持久胜过激烈和狂热。 哈喽大家好&#xff0c;我是陈明勇&#xff0c;今天分享的内容是使用 Go 实现插入排序算法。如果本文对你有帮助&#xff0c;不妨点个赞&#xff0c;如果你是 Go 语言初学者&#xff0c;不妨…

python基于SVM的疫情评论情感数据分析

1、构建SVM情感分析模型 读取数据 使用pandas的库读取微薄数据读取并使进行数据打乱操作 import pandas as pd test pd.read_csv(".\\weibo.csv") test_data pd.DataFrame(test)[:1000] test_data 打乱数据 re_test_data test_data.sample(frac1).reset_index(…

代码随想录训练营第44天|完全背包、LeetCode 518. 零钱兑换 II、 377. 组合总和 Ⅳ

完全背包 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品都有无限个&#xff08;也就是可以放入背包多次&#xff09;&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 完全背包和01背包问题唯一不同…

前端工程化实践——快速入门treeshaking

treeshaking treeshaking本质是去除多余代码算法。在前端的性能优化中&#xff0c;es6 推出了tree shaking机制&#xff0c;tree shaking就是当我们在项目中引入其他模块时&#xff0c;他会自动将我们用不到的代码&#xff0c;或者永远不会执行的代码摇掉&#xff0c;在…

【Java设计模式】用盖房子案例讲解建造者模式(生成器模式)

一、前言 今天学习了Java设计模式中的建造者模式&#xff0c;细心整理了学习笔记以及对这个模式的自我理解&#xff0c;希望大家喜欢&#xff01; 二、需求介绍 现在我们需要建房子&#xff0c;过程为打桩、砌墙、封顶。房子有各种各样的&#xff0c;比如普通房&#xff0c;…

【Java开发】 Spring 10 :Spring Boot 自动配置(Auto Configuration)原理及手动实现

用了这么久的 SpringBoot &#xff0c;我们再来回顾一下它&#xff0c;本文介绍 Spring Boot 的自动配置&#xff0c;这是它区别于 Spring 的最大的点&#xff0c;本文的自动配置项目包含三个项目&#xff0c;建议拉取仓库里的代码进行实践&#xff1a;尹煜 / AutoConfigDemo …

SOFA Weekly|MOSN v1.3.0 版本发布、公众号半自助投稿、本周 Contributor QA

SOFA WEEKLY | 每周精选 筛选每周精华问答&#xff0c;同步开源进展欢迎留言互动&#xff5e;SOFAStack&#xff08;Scalable Open Financial Architecture Stack&#xff09;是蚂蚁集团自主研发的金融级云原生架构&#xff0c;包含了构建金融级云原生架构所需的各个组件&#…

不接受反驳,性能最强,功能最强的Java日志框架

Logback 算是JAVA 里一个老牌的日志框架&#xff0c;从06年开始第一个版本&#xff0c;迭代至今也十几年了。不过logback最近一个稳定版本还停留在 2017 年&#xff0c;好几年都没有更新&#xff1b;logback的兄弟 slf4j 最近一个稳定版也是2017年&#xff0c;有点凉凉的意思。…

tep支持pytest-xdist分布式执行用例及合并Allure报告

tep近期更新频率较快&#xff0c;一方面是作者在积极投入到tep工具开发中&#xff1b;另一方面是我们聚集了20位小伙伴&#xff0c;一起合力打造EasyPytest测试平台&#xff0c;teprunner的FastAPI升级版本&#xff0c;依托于tep&#xff0c;帮你高效管理pytest测试用例。陆续也…

使用OpenGPT(ChatGPT)搭建 QQ 机器人

本教程来自&#xff1a;OpenGPT搭建QQ机器人-憨憨博客 有问题可来我博客询问&#xff1a;我的博客 准备 一个服务器&#xff1a;Windos&#xff0c;Centos&#xff0c;Ubuntu 环境&#xff1a;Python 一个 QQ 号用作机器人 一个 OpenAI 账号 (注册教程自行搜索) 搭建 这里我用…

Java最流行的Spring框架该怎么学?阿里、腾讯、字节跳动等大厂面试中关于Spring都会问什么?

Spring作为现在最流行Java 开发技术&#xff0c;其内部源码设计非常优秀。如果你不会Spring&#xff0c;那么很可能面试官会让你回家等通知。 Spring是什么&#xff1f; 有一个工地&#xff0c;几百号人在用铁锹铲子挖坑。 如果开一辆挖掘机来&#xff0c;用一天时间干的活就…