微信小程序学习记录【1】【项目结构构成、基本配置】文章目录

  • 项目结构构成
  • 官方文档结构
  • 基本配置
    • 1. 小程序配置
      • 1.1 app.json
      • 1.2 page(页面名).json
      • 1.3 sitemap.json
    • 2. 框架接口
      • 2.1 app.ts
      • 2.2 page.ts

项目结构构成

|-pages      // 项目的模板页面|-index   // 页面文件夹,每个文件夹表示一个页面,页面由四个文件构成,文件名必须相同。默认加载的是index页面|-index.js    // 页面逻辑文件|-index.json  // 页面配置文件|-index.wxml  // 页面结构文件|-index.wxss  // 页面样式文件|-logs     // 页面文件夹|-logs.js|-logs.json|-logs.wxml|-logs.wxss
|-utils     // 项目的工具|-util.js
|-app.js   // 项目逻辑文件
|-app.json // 项目配置文件
|-app.wxss // 项目样式文件
|-project.config.json  // 项目的描述文件
|-sitemap.json  // 小程序搜索定义文件

官方文档结构

微信官方文档:

  • 框架

    小程序的框架配置、框架接口、wxml语法、wxs语法等

  • 组件

    微信提供的可以在页面中直接使用的内置标签,用来构成小程序的页面结构

    内置组件一般都具有特定的页面结构、样式和功能

    微信也提供了自定义组件的功能

  • API

    微信提供的内置功能方法,用于实现数据请求、硬件调用等功能

  • 服务端

    小程序仅提供页面构成等交换功能,对于项目运行需求的后台功能,需要通过后台代码进行结构调用获取(提供给后端程序员使用)

  • 云开发

    云开发为开发者提供完整的原生云端支持和微信服务支持,弱化后端和运维概念,无需搭建服务器。

    使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代。

  • 扩展能力

    扩展的组件标签,下载后可以在小程序中直接使用


基本配置

​ 创建页面的两种方式:

  • 点击+新建——>目录/Page,会根据提供的名称自动创建四个文件,并添加到app.json的pages选项中

  • 直接在app.json的pages选项中添加页面路径,然后保存,如果不存在对应文件夹,会自动在对应路径下创建四个文件

1. 小程序配置

​ 分为:全局配置app.json、页面配置page.json、sitemap配置sitemap.json

1.1 app.json

​ 小程序根目录下的app.json 文件用来对微信小程序进行全局配置,定义小程序的所有页面路径、界面表现、网络超时时间、底部 tab 等

​ 参考 https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html

例如:tabBar

1.2 page(页面名).json

​ 每一个小程序页面也可以使用同名 .json 文件来对本页面的窗口表现进行配置,页面中配置项会覆盖 app.jsonwindow 中相同的配置项

​ 参考 https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/page.html

1.3 sitemap.json

​ 开发者可以通过 sitemap.json 配置,或者管理后台页面收录开关来配置其小程序页面是否允许微信索引,提供小程序搜索功能

​ 参考 https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/sitemap.html

2. 框架接口

2.1 app.ts

​ app.ts文件是项目的核心逻辑文件,在该文件中完成小程序实例的注册和全局功能的定义

  • 通过调用 App(Object) 方法注册小程序实例,绑定生命周期回调函数、错误监听和页面不存在监听函数等
  • App() 必须在 app.ts 中调用,必须调用且只能调用一次,不然会出现无法预期的后果
  • 整个小程序只有一个 App 实例,是全部页面共享的。开发者可以通过 getApp() 方法获取到全局唯一的 App 实例
  • onShow()/onHide(),控制小程序在进入前台和切入后台(被隐藏)时的动作
  • 可定义全局变量或函数,通过App实例来调用(在其他页面获取App实例:const app=getApp();
  • onLaunch(),小程序加载,只加载一次

​ 参考 https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html

2.2 page.ts

​ page.ts文件是页面的逻辑文件,在该文件中完成当前页面的注册和页面功能的定义

  • 通过调用 Page(Object) 方法注册当前页面,指定页面的初始数据、生命周期回调、事件处理函数等
  • 在该文件中this表示当前页面实例对象,可以通过this访问当前页面实例的数据和方法
  • 在该文件中可以通过this.setData(object)修改数据仓库data中的数据,并同步更新页面中绑定的值,即改变页面的状态
  • onload() 页面加载,只加载一次,onready()也只执行一次
  • onshow()的第一次执行早于onready()的执行
  • 设置页面转发内容(注:path要与App.json中路径相同,否则会找不到页面)

​ 参考 https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html


笔记内容来源:https://www.w3cschool.cn/minicourse/play/txywxxcx

微信小程序学习记录【1】【项目结构构成、官方文档构成、基本配置】相关推荐

  1. 基于vue的微信小程序开发5分钟上手教程(官方文档转)

    使用手册 mpvue 继承自 Vue.js,其技术规范和语法特点与 Vue.js 保持一致. 注:其实就是官方文档,只是习惯看博文学习才直接copy过来的,详见官方文档 本文档适用于有一定 Vue.j ...

  2. 微信小程序如何实现支付功能?看官方文档头疼(使用云函数的方式操作)

    先来个效果图  ^_^ 微信支付功能,个人公众号是没有办法进行开发支付功能的,需要是使用非个人公众号进行注册(如:营业执照等,可以去淘宝购买一个也行 大概500左右) 公众平台的配置可以参考文档,这里 ...

  3. 微信小程序学习记录——4.框架-视图层

    文章目录 1.WXML 数据绑定 简单绑定 运算 组合 列表渲染 wx:for block wx:for wx:key 条件渲染 wx:if block wx:if wx:if vs hidden 模 ...

  4. json 微信小程序 筛选_微信小程序学习记录

    全局配置 app.json 文件用来对微信小程序进行全局配置. pages 类型为 String Array 是 页​面路径列表,创建目录和更改时会自动更改文件. 用于指定小程序由哪些页面组成,每一项 ...

  5. 微信小程序学习记录(一)

    如何定义一个全局变量: 1,在根目录下app.js中添加 App({globalData: {g_isPlayingMusic : false,g_currentMusicPostId :null,d ...

  6. 微信小程序学习记录(二)MQTT连接阿里云

    准备 微信小程序开发工具 MQTT.js库:https://unpkg.com/mqtt@2.18.8/dist/mqtt.min.js点开链接,右击页面内容另存到电脑. 开始 将MQTT.js复制到 ...

  7. 微信小程序学习记录——5.组件

    文章目录 1.视图容器 view scroll-view swiper swiper-item movable-view movable-area movable-view cover-view co ...

  8. 微信小程序学习记录——3.框架-逻辑层

    文章目录 1.逻辑层简介 2.注册程序 App() onLaunch,onShow参数 getApp() 3.场景值 4.注册页面 Page() 生命周期 生命周期中的函数 初始化数据 页面相关事件处 ...

  9. 微信小程序学习记录(一)小实战——加法计算器

    小实战--加法计算器 在[app.json]文件下添加计算器页面: "pages": ["pages/calc/calc",//新建计算器页面"pag ...

最新文章

  1. python读取大文件太慢_python读取大文件越来越慢的原因与解决
  2. android 电容屏(二):驱动调试之基本概念篇
  3. PMCAFF微课堂 | 奇酷运营总监类类教你如何利用金字塔模型提高用户忠诚度
  4. dapper 连接mysql_如何在.NET中使用Dapper处理数据库连接?
  5. chrome密码管理
  6. Python网络爬虫开发实战,关于过程中的异常处理
  7. 【华为云实战开发】12.如何在云端快速开展Swagger接口测试
  8. 16进制数组转成10进制 qt_将十六进制转换为二进制qt
  9. 关于ubuntu17.04之apt-get源失败 解决办法
  10. 三点顺序(计算几何入门)
  11. RNN 卷积神经网络- 吴恩达Andrew Ng 论文等资料汇总
  12. SSL 1203 书的复制
  13. KICAD——手动生成嘉立创可识别的BOM和POS文件
  14. 如何用计算机控制ipad,躺在床上玩电脑,使用ipone ipad远程控制LAN计算机-ipad如何连接到计算机...
  15. 首席新媒体黎想告诉你,不花钱做互联网推广!这些方式了解一下
  16. 华为企业交换机ACL经典案例
  17. sql查询ID=1与数据后几条,并且将查询的两个数据显示在一个查询窗口中
  18. 微信小程序游戏开发介绍,微信互动游戏有哪些?
  19. Hadoop+hive+flask+echarts大数据可视化项目之hive环境搭建与系统数据的分析思路
  20. java用poi操作excel,2003,2007,2010

热门文章

  1. 网络舆情监测是什么工作,网络舆情监测工作方案?
  2. CAD文字对齐快速操作
  3. 小刀娱乐网:dedecms 会员中心调用会员最后登录时间 和上次登录ip
  4. STM32F429移植STemWin,STemWin函数应用
  5. 湎计算机网络通讯设备有哪些,计算机网络习题集及答案.pdf
  6. 数学与计算机科学学院翻译,学院与专业英语翻译
  7. P25边缘保留滤波(EPF滤波)
  8. 喜欢屯视频的你,一定会喜欢 GitHub 上这几款视频下载神器!
  9. 转:程序员风格的修真小说
  10. 关于WPF Datagrid绑定true false时转换为字符串