用来存放所有小程序页面
所有的页面都以单独的文件夹放在pages目录中
小程序开发者工具在每个项目的根目录只要载入同一个项目的代码包,开发者工具就自动会帮你恢复到当时你开发项目时的个性化配置,其中会包括编辑器的颜色、代码上传时自动压缩等等一系列选项。
项目配置文件
可以在项目根目录使用 project.config.json
文件对项目进行配置。
字段名 | 类型 | 说明 |
---|---|---|
miniprogramRoot | Path String | 指定小程序源码的目录(需为相对路径) |
qcloudRoot | Path String | 指定腾讯云项目的目录(需为相对路径) |
pluginRoot | Path String | 指定插件项目的目录(需为相对路径) |
compileType | String | 编译类型 |
setting | Object | 项目设置 |
libVersion | String | 基础库版本 |
appid | String | 项目的 appid,只在新建项目时读取 |
projectname | String | 项目名字,只在新建项目时读取 |
packOptions | Object | 打包配置选项 |
debugOptions | Object | 调试配置选项 |
scripts | Object | 自定义预处理 |
compileType 有效值
名字 | 说明 |
---|---|
miniprogram | 当前为普通小程序项目 |
plugin | 当前为小程序插件项目 |
setting 中可以指定以下设置
字段名 | 类型 | 说明 |
---|---|---|
es6 | Boolean | 是否启用 es6 转 es5 |
postcss | Boolean | 上传代码时样式是否自动补全 |
minified | Boolean | 上传代码时是否自动压缩 |
urlCheck | Boolean | 是否检查安全域名和 TLS 版本 |
setting示例配置:
"setting": {
"urlCheck": true,
"es6": true,
"enhance": true,
"postcss": true,
"preloadBackgroundData": false,
"minified": true,
"newFeature": false,
"coverView": true,
"nodeModules": false,
"autoAudits": false,
"showShadowRootInWxmlPanel": true,
"scopeDataCheck": false,
"uglifyFileName": false,
"checkInvalidKey": true,
"checkSiteMap": false,
"uploadWithSourceMap": true,
"compileHotReLoad": false,
"lazyloadPlaceholderEnable": false,
"useMultiFrameRuntime": true,
"useApiHook": true,
"useApiHostProcess": true,
"babelSetting": {
"ignore": [],
"disablePlugins": [],
"outputPath": ""
},
"enableEngineNative": false,
"useIsolateContext": true,
"userConfirmedBundleSwitch": false,
"packNpmManually": false,
"packNpmRelationList": [],
"minifyWXSS": true,
"disableUseStrict": false,
"minifyWXML": true,
"showES6CompileOption": false,
"useCompilerPlugins": false
},
scripts 中指定自定义预处理的命令
名字 | 说明 |
---|---|
beforeCompile | 编译前预处理命令 |
beforePreview | 预览前预处理命令 |
beforeUpload | 上传前预处理命令 |
packOptions
packOptions
用以配置项目在打包过程中的选项。打包是预览、上传时对项目进行的必须步骤。
目前可以指定 packOptions.ignore
字段,用以配置打包时对符合指定规则的文件或文件夹进行忽略,以跳过打包的过程,这些文件或文件夹将不会出现在预览或上传的结果内。
packOptions.ignore
为一对象数组,对象元素类型如下:
字段名 | 类型 | 说明 |
---|---|---|
value | string | 路径或取值 |
type | string | 类型 |
其中,type
可以取的值为 folder
、file
、suffix
、prefix
,分别对应文件夹、文件、后缀、前缀。
示例配置如下:
{
"packOptions": {
"ignore": [{
"type": "file",
"value": "test/test.js"
}, {
"type": "folder",
"value": "test"
}, {
"type": "suffix",
"value": ".webp"
}, {
"type": "prefix",
"value": "test-"
}]
}
}
注: value
字段的值不支持通配符、正则表达式。若表示文件或文件夹路径,以小程序目录 (miniprogramRoot
) 为根目录。
debugOptions
debugOptions
用以配置在对项目代码进行调试时的选项。
目前可以指定 debugOptions.hidedInDevtools
字段,用以配置调试时于调试器 Sources 面板隐藏源代码的文件。
hidedInDevtools
的配置规则和 packOptions.ignore
是一致的。
当某个 js 文件符合此规则时,调试器 Sources 面板中此文件源代码正文内容将被隐藏,显示为:
// xxx.js has been hided by project.config.json
注:配置此规则后,可能需要关闭并重新打开项目才能看到效果。
项目配置示例:
{
"miniprogramRoot": "./src",
"qcloudRoot": "./svr",
"setting": {
"postcss": true,
"es6": true,
"minified": true,
"urlCheck": false
},
"packOptions": {},
"debugOptions": {}
}
⚠**“checkSiteMap”: false, 可以取消黄色警告(取消sitemap的索引提示)**
.js-逻辑交互(脚本文件)
.json-配置(配置文件)
.wxss-美化页面结构(样式文件)
.wxml-渲染页面结构(结构文件)
app.json是当前小程序的 全 局 配 置 \textcolor{red}{全局配置} 全局配置,包括了小程序的 所 有 页 面 路 径 、 窗 口 外 观 、 界 面 表 现 、 底 部 t a b \textcolor{red}{所有页面路径、窗口外观、界面表现、底部tab} 所有页面路径、窗口外观、界面表现、底部tab等
每个页面自己的json内容与app.json冲突时会优先使用自身的json内容
用来记录当前小程序所有的页面路径
新建页面只需要在app.js文件的"pages":[]列表中加入"pages/页面名/页面名"
即可
"pages":[
"pages/home/home", //放在第一个位置的页面会被当做首页显示
"pages/user/user",
"pages/index/index",
"pages/logs/logs",
"pages/msg/msg"
],
全局定义小程序所有页面的背景色、文字颜色等
"window":{
"backgroundTextStyle":"light", // 小圆点的主题颜色light/dark
"navigationBarBackgroundColor": "#ffe23b", // 导航栏背景颜色
"navigationBarTitleText": "Jc图片表情Hub", // 导航栏文字标题内容
"navigationBarTextStyle":"black", // 导航栏文字颜色
"enablePullDownRefresh": true, // 是否开启下拉刷新
"backgroundColor": "#ffe29b" // 背景颜色(下拉刷新时才能看到)
},
全局定义小程序组件所使用的样式版本
"style": "v2",
用来指明sitemap,json的值
"sitemapLocation": "sitemap.json",
WXSS支持新的尺寸单位 $\textcolor{red}{rpx} $ ,在不同大小屏幕上可以自动进行换算适配
项目根目录中的app.json会作用于所有小程序页面
局部页面的 .wxss 样式仅对当前页面生效
HTML标签名称(div,span,img,a)
WXML标签名称(view,text,image,navigator)
HTML:超链接
WXML:
小程序中js文件分为三大类:
宿 主 程 序 是 程 序 运 行 所 必 须 的 依 赖 环 境 \textcolor{red}{宿主程序是程序运行所必须的依赖环境} 宿主程序是程序运行所必须的依赖环境
小程序中通信的主题是 渲 染 层 \textcolor{red}{渲染层} 渲染层 和 逻 辑 层 \textcolor{red}{逻辑层} 逻辑层,其中:
① WXML模板和WXSS样式工作在渲染层
5.小程序启动完成
view
<view class="container1">
<view>A</view>
<view>B</view>
<view>C</view>
</view>
scroll-view
<view><text>纵向滚动</text></view>
<scroll-view class="container2" scroll-y>
<view>A</view>
<view>B</view>
<view>C</view>
</scroll-view>
swiper 和 swiper-item
<view>轮播图</view>
<!-- indicator-dots 小圆点
indicator-color="white" 默认颜色
indicator-active-color="grey" 激活颜色
autoplay 自动轮播
interval="3000" 自动轮播时间间隔
circular 循环轮播
-->
<swiper class="swiper-container" indicator-dots indicator-color="white" indicator-active-color="grey" autoplay interval="3000" circular>
<!-- 第一个轮播图 -->
<swiper-item>
<view class="item">A</view>
</swiper-item>
<!-- 第二个轮播图 -->
<swiper-item class="item">
<view class="item">B</view>
</swiper-item>
<!-- 第三个轮播图 -->
<swiper-item class="item">
<view class="item">C</view>
</swiper-item>
</swiper>
text
text组件的user-select 或 selectable属性,实现长按选中文本内容效果
<!-- user-select用户长按可选中复制 -->
<view>
手机号码为:
<text user-select="true">13088888888</text>
</view>
rich-text
rich-text组件的nodes属性节点,把HTML字符串渲染为对应的UI结构
<!-- rich-text可以通过nodes属性把html字符串渲染成对应的UI结构 -->
<rich-text nodes="标题"
></rich-text>
button
<!--button组件-->
<view>~~~~~~~~~~通过 type 指定按钮类型~~~~~~~~~~</view>
<button>默认按钮</button>
<button type="primary">主色调按钮</button>
<button type="warn">警告按钮</button>
<view>~~~~~~~~~~size="mini" 小尺寸按钮~~~~~~~~~~</view>
<button size="mini">默认按钮</button>
<button type="primary" size="mini">主色调按钮</button>
<button type="warn" size="mini">警告按钮</button>
<view>~~~~~~~~~~plain 镂空按钮~~~~~~~~~~</view>
<button size="mini" plain>默认按钮</button>
<button type="primary" size="mini" plain>主色调按钮</button>
<button type="warn" size="mini" plain>警告按钮</button>
image
<view>~~~~~~~~~~image组件~~~~~~~~~~</view>
<!-- image 的 mode属性-->
<image src="/images/mountain.jpg" mode="scaleToFill" ></image>
<image src="/images/mountain.jpg" mode="widthFix" ></image>
<image src="/images/mountain.jpg" mode="heightFix" ></image>
<image src="/images/mountain.jpg" mode="aspectFit" ></image>
小程序的API是由宿主环境提供的,通过这些小程序的API,开发者可以方便的调用微信提供的能力,例如:获取用户信息、本地储存、支付功能等。