【微信小程序低代码开发】二,在实操中化解小程序的代码组成

2024-02-24 18:20

本文主要是介绍【微信小程序低代码开发】二,在实操中化解小程序的代码组成,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上一章我们对项目的结构有了一定的了解,大家会发现,小程序项目的文件,分离的很彻底,每个文件都有自己的作用,那么接下来让我们深入去理解这些文件

文章目录

    • 一,最小的小程序文件组成
    • 二,与web区别
      • 2.1 WXML和HTML
      • 2.2 WXSS和CSS
      • 2.3 JS
    • 三,配置文件JSON
      • 3.1 app.json
        • 3.1.1 创建新页面Pages
        • 3.1.2 修改项目页面首页
        • 3.1.3 app.json其他全局配置
      • 3.2 project.config.json
      • 3.3 sitemap.json

一,最小的小程序文件组成

当我们创建一个小程序项目时,开发者工具会自动帮我们创建一些默认的结构,但为了去了解小程序执行时的步骤,我们可以删除这些结构,只留下pages文件
如下所示:
在这里插入图片描述
这时候我们ctrls保存编译一下,会发现它会出现一行报错
app.json: app.json 未找到
也就是说编译时,小程序会先去找我们的app.json文件

  1. 那么现在我们创建一个app.json文件在根目录下,在里面放上JSON文件的格式,一个大括号包起来,里面不写东西。
    再保存编译:
    报错如下
    在这里插入图片描述

  2. app.json里的pages是什么?里面配置的是我们页面的路径,
    那么我们给它填上一个路径
    在这里插入图片描述
    这就在告诉编译器,我们的一个页面的路径,这时候编译器并没有报错,但它警告说没有找到我们的app.js文件

  3. 在根目录在再添加app.js文件,里面什么都不放,这时候编译成功,这就是一个最小小程序的项目。

app.js文件是小程序项目的入口文件,在编译时,编译器配置全局后,就会去找我们根目录下的app.js文件,通过里面的APP()函数,创建出一个小程序实例

二,与web区别

2.1 WXML和HTML

WXML全名WeiXin Markup Language,是微信小程序独有的文件格式

它与HTML的区别有几点

  1. 标签名
    在HTML 中,有div span img a
    而在WXML中,有view text imaga navigation
    view在微信小程序中其实就是充当div的角色,,作为块级元素进行布局
    text 一般存放文本,作为WXML中的行内元素
    image用法和img一致,包含图片
    navigation标签就是超链接标签,存放链接

  2. 属性节点
    在img中,是用属性src存放链接,而在image中,是用url存放

<img src="#">
<image url="#">
  1. 多了类似vue的语法
    什么,没学过?没事,照样学!
    其实就将渲染和逻辑分离的MVVM模式,在网页的开发中,我们经常通过JS操作DOM,当项目越来越大时,你的代码会充斥着非常多交互逻辑和程序的各种状态变量,这样结构上不是很友好,而MVVM开发模式就是提倡不让JS直接操控DOM,JS只需要作为一个管理者,区别出状态,然后通过模板语法(react、vue)来表述状态与界面结构的关系即可
    小程序框架也是用到这个思路,如下:
    WXML可以这样写:
<text>{{msg}}</text>

JS无需获取变量

this.setData{{ msg: "Hello World"}}

这种我们称为数据绑定,通过双大括号的方式,将一个变量绑定到页面,我们可以直接在JS对其进行修改,现在可以先了解一下

2.2 WXSS和CSS

WXSS全名为WeiXin Style Sheets,其具有CSS大部分特性,微信小程序在此之上,做了些修改和扩充

  1. 新增尺寸单位,在CSS样式中,开发中需要手动用rem对不同屏幕大小进行换算,而WXSS新增的rps可以自动换算像素单位
  2. 全局样式
    也就是app.wxss文件,与之前app开头文件一样,里面说设置的样式,会对所有页面生效,也就是全局样式,而各页面的样式文件,只对该页面生效
  3. WXSS只支持部分选择器
    类选择器,id选择器,标签选择器,并集选择器,::after::before

2.3 JS

与用户的交互我们交由JS脚本文件完成,利用之前提到的数据绑定,如我们获取用户的点击状态然后进行响应:

<view>{{msg}}</view>
<button bindtap="click">点击有好事发生</button>

bindtap进行事件绑定,当点击后会在该页面对应的Page中找到对应事件处理函数

Page({click: function(){this.setData({ msg: "Hello World"})	}
)

这些事件和组件的使用后面会边应用边讲解

在项目结构中,也有各个层次的JS文件

  • 如前面提到的app.js文件,是整个项目的入口文件,小程序将调用里面的App函数,将小程序实例化并运行
  • 各页面文件夹下的的.js文件,调用里面的Page函数,实例化并运行页面
  • 还有一个utils文件夹下的普通JS文件,这是功能模块文件,常常用来封装公共的函数和属性

三,配置文件JSON

3.1 app.json

3.1.1 创建新页面Pages

上面说到的app.json就是配置全局的静态数据,像是里面的pages属性,里面存放页面的路径

上一章我们讲过在一个页面文件中需要有四个不同类型的文件,但是我们不需要一一创建

只需要在pages文件夹上创建一个文件夹,然后右键新建的文件夹选择新建page

在这里插入图片描述
填入我们想要的文件名,如index,我们会发现,它会自动帮我们新建那四个文件,同时,在app.json中,开发者工具会自动在pages中添加新建页面的路径
在这里插入图片描述

3.1.2 修改项目页面首页

小程序会将全局配置文件app.json下pages的第一个页面默认为首页,如果需要更改首页,只需在首页的路径换到pages的第一行即可

{"pages"["pages/list/list","pages/index/index"]
}
3.1.3 app.json其他全局配置
  • window 配置小程序所有页面的顶部
    用于设置状态栏,导航条,标题,窗口背景色等
    这里介绍几个比较常用的
  1. navigationBarBackgroundColor 设置值为十六进制的颜色值,设置导航仪背景颜色
  2. navigationBarTextStyle 标题颜色设置,不过只支持whiteblack
  3. navigationBarTitleText 标题文本设置

其他属性可以在微信的官方文档获取

例子展示:

{"pages": ["pages/index/index","pages/list/list"],"window": {"navigationBarBackgroundColor": "#fff","navigationBarTextStyle": "black","navigationBarTitleText": "第一个小程序"}
}

在这里插入图片描述

  • tabBar 底部tab栏设置
    主要用到的属性有
  1. list 底部列表,最少放俩个,最多放五个
  2. color 文字默认颜色
  3. selectedColor 被选择是文字颜色
  4. backgroundColor tab背景颜色
    颜色需要使用十六进制颜色值

展示:

  "tabBar": {"list": [{"pagePath": "pages/index/index","text": "首页"},{"pagePath": "pages/list/list","text": "目录"}],"color": "#fff","selectedColor": "#999","backgroundColor": "#111"}

在这里插入图片描述
全局配置的属性很多,这里先做一个了解

3.2 project.config.json

项目的配置文件,项目的公共配置会写在里面,如项目名字,项目的appid,源码目录等等
其实还有一个文件叫project.private.config.json,里面会写项目的个人配置

3.3 sitemap.json

配置小程序及其页面是否允许微信索引,微信会有爬虫来爬我们小程序,当用户搜索时,如果我们允许索引,我们的小程序就可以被搜索到

今天小程序的代码组成到这就结束啦,如果觉得有帮助的话,可以持续关注下牛牛的更新,
感谢您的支持!

债见~

这篇关于【微信小程序低代码开发】二,在实操中化解小程序的代码组成的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/742947

相关文章

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t