uniApp:环境搭建及配置

uniApp 是一个使用 Vue.js 开发所有前端应用的框架,可以跨平台使用。

环境搭建

  1. 安装
  1. HbuilderX 初始化项目

    点击 HbuilderX菜单栏文件 > 项目 > 新建,选择 uni-app,填写项目名。

image-20211211154723570.png

  1. 配置环境
  • 找到配置自己的微信开发者工具地址

    image-20220610112950756.png

  • 配置自己的 AppID

    image-20220610113153293.png

  • 打开微信小程序代理和服务端口

    image-20220610113350654.png
    image-20220610113319242.png

项目目录介绍

项目结构说明
pages 目录所有的页面的存放目录
static 目录静态资源目录
unpackage 目录打包文件,存放各个平台的打包文件
App.vue项目根组件,页面的入口文件
main.js项目入口文件,主要作用是初始化 vue 实例并使用需要的插件
manifest.json配置打包的文件,指定应用的名称、图标、权限等
pages.json设置项目页面的存放路径和窗口外观
uni.scssuni-app 内置常用的变量

为了实现多端兼容,综合考虑编译速度、运行性能等因素,uni-app 约定了开发规范:

  • 页面文件遵循 Vue 单文件组件(SFC)规范
  • 组件标签靠近小程序规范,详见 uni-app组件规范
  • 接口能力(JS API)靠近微信小程序规范,但需要前缀 wx 替换为 uni,详见 uni-app接口规范
  • 数据绑定及事件处理通 Vue.js 规范,同时补充了 App 及页面的生命周期。
  • 为兼容多端运行,建议使用 flex 布局进行开发。

全局配置和页面配置

官方文档框架 - 配置:https://uniapp.dcloud.io/collocation/pages

全局配置

通过 pages.json 文件中的 globalStyle 进行全局配置。
用于设置应用的状态栏、导航条、标题、窗口背景色等。

属性类型默认值描述
navigationBarBackgroundColorStringwhite导航栏背景颜色(同状态栏背景色)
navigationBarTextStyleStringwhite导航栏标题颜色及状态栏前景颜色,仅支持 black/white
navigationBarTitleTextString导航栏标题文字内容
backgroundColorHexColor#ffffff下拉显示出来的窗口的背景色(微信小程序)
backgroundTextStyleStringdark下拉 loading 的样式,仅支持 dark / light
enablePullDownRefreshBooleanfalse是否开启下拉刷新,详见页面生命周期
onReachBottomDistanceNumber50页面上拉触底事件触发时距页面底部距离,单位只支持px,详见页面生命周期
{
    "globalStyle": {
		// 导航栏标题颜色及状态栏前景颜色
		"navigationBarTextStyle": "white",
		// 导航栏标题文字内容
		"navigationBarTitleText": "全局标题",
		// 导航栏背景颜色(同状态栏背景色)
		"navigationBarBackgroundColor": "#2B9939",
		// 是否开启下拉刷新
		"enablePullDownRefresh": true,
		// 下拉显示出来的窗口的背景色,仅在小程序中显示
		"backgroundColor": "#F8F8F8",
		// 下拉 loading 的样式
		"backgroundTextStyle": "light",
		// 页面上拉触底事件触发时距页面底部距离
		"onReachBottomDistance": 50
	},
    // 页面配置
    "pages": [],
}

页面配置

页面路由

创建一个 message 页面。

  1. pages 目录下新建 message/message.vue 文件。

    <template>
    	<view>message页面</view>
    </template>
    
  2. 配置路由

    pages 数组中的第一项是启动页。
    pages.json 文件中的 pages 数组中配置子页面路由。

    • path:子页面路由。

style 设置样式

pages.json 文件中的 pages 数组中配置子页面样式。

  • style:子页面样式。

设置每个平台单独的样式

属性类型描述平台差异
app-plusObject设置编译到 App 平台的特定样式,配置项参考下方 app-plusApp
h5Object设置编译到 H5 平台的特定样式,配置项参考下方 H5H5
mp-alipayObject设置编译到 mp-alipay 平台的特定样式,配置项参考下方 MP-ALIPAY支付宝小程序
mp-weixinObject设置编译到 mp-weixin 平台的特定样式微信小程序
mp-baiduObject设置编译到 mp-baidu 平台的特定样式百度小程序
mp-toutiaoObject设置编译到 mp-toutiao 平台的特定样式字节跳动小程序
mp-larkObject设置编译到 mp-lark 平台的特定样式飞书小程序
mp-qqObject设置编译到 mp-qq 平台的特定样式QQ小程序
mp-kuaishouObject设置编译到 mp-kuaishou 平台的特定样式快手小程序
配置单平台样式 (H5)

配置编译到 H5 平台时的特定样式,对小程序不起作用。

H5 属性类型描述
titleNViewObject导航栏
pullToRefreshObject下拉刷新
"pages": [
    {
        // 子页面路由
        "path": "pages/message/message",
        // 子页面样式
        "style": {
            "navigationBarTitleText": "信息页",
            // 导航栏背景颜色
            "navigationBarBackgroundColor": "#007AFF",
            // 导航栏的字体颜色
            "navigationBarTextStyle": "black",
            // 配置编译到 H5 平台时的特定样式
            "H5": {
                // 下拉刷新
                "pullToRefresh": {
                    // 刷新球的颜色
                    "color": "#836FFF"
                }
            }
        }
    }
],

配置Tab栏 TabBar

如果应用是一个多 tab 应用,可以通过 tabBar 配置项指定一级导航栏,以及 tab 切换时显示的对应页。
pages.json 文件中的 pages 数组中配置Tab栏列表。

  • tabBar:Tab栏列表。

注意使用:

  • 当设置 position 为 top 时,将不会显示 icon
  • tabbar 切换第一次加载时可能渲染不及时,可以在每个tabbar页面的 onLoad 生命周期里先弹出一个等待雪花。
属性类型描述
colorHexColortab 上的文字默认颜色
selectedColorHexColortab 上的文字选中时的颜色
backgroundColorHexColortab 的背景色
borderStyleStringtabbar 上边框的颜色,可选值 black/white,App 2.3.4+ 支持其他颜色值
listArraytab 的列表,详见 list 属性说明,最少2个、最多5个 tab
positionfontSizeString可选值 bottom、top(top 值仅微信小程序支持)
"tabBar": {
    // 字体默认颜色
    "color": "#333333",
    // 字体选中颜色
    "selectedColor": "#FF8D1A",
    // 上边框颜色
    "borderStyle": "#808080",

    // tab栏列表
    "list": [
        {
            "text": "首页",
            // 子页面路由
            "pagePath": "pages/index/index",
            // icon图标
            "iconPath": "static/tabs/index.png",
            // icon图标-选中状态
            "selectedIconPath": "static/tabs/index-active.png"
        },
        {
            "text": "信息页",
            "pagePath": "pages/message/message",
            "iconPath": "static/tabs/message.png",
            "selectedIconPath": "static/tabs/message-active.png"
        },
        {
            "text": "我的",
            "pagePath": "pages/contact/contact",
            "iconPath":"./static/logo.png",
            "selectedIconPath":"static/logo.png"
        }
    ]
}

condition 启动模式配置

启动模式配置,仅开发期间生效,用于模拟直达页面的场景,如:小程序转发后,用户点击所打开的页面。

image-20211211185014960.png

"condition": {
    "current": 0,
    "list": [
        {
            "name": "详情页",
            "path": "page/ditall/detall",
            "query": "id=80"
        }
    ]
}

条件编译跨端兼容

每个平台有自己的一些特性,因此会出现一些无法跨平台的情况。
条件编译是用特殊的注释作为标记,在编译时根据这些特殊的注释。将注释里的代码编译到不同的平台。
写法:以 #ifdef 加平名称开头,以 #endif 结尾。

条件编译写法 (以注释的形式书写)说明
#ifdef APP-PLUS
需要编译的代码
#endif仅出现在APP平台下的代码
#ifndef H5
需要编译的代码
#endif除了H5平台,其他平台均存在的代码
ifdef H5 &#124;&#124; MP-WEIXIN
需要编译的代码
#endif在 H5 平台或微信小程序平台存在的代码
注意:这里只有 ||,不可能出现&&,因为没有交集
平台
APP-PLUS5+APP
H5H5
MP-WEIXIN微信小程序
MP-ALIPAY支付宝小程序
MP-BAIDU百度小程序
MP-TOUTIAO头条小程序
MP-QQQQ小程序
MP微信小程序/支付宝小程序/百度小程序/头条小程序/QQ小程序
更多详情
<template>
	<view>
		<!-- #ifdef H5 -->
		<view>仅在H5中显示</view>
		<!-- #endif -->
		
		<!-- #ifdef MP-WEIXIN -->
		<view>仅在微信小程序中显示</view>
		<!-- #endif -->
	</view>
</template>

<script>
export default {
    onLoad() {
        // #ifdef H5
        console.log('仅在H5中显示')
        // #endif

        // #ifdef MP-WEIXIN
        console.log('仅在微信小程序中显示')
        // #endif
    }
}
</script>

<style>
	/* H5中的样式 */
	/* #ifdef H5 */
	view { color: #FF0000 }
	/* #endif */
	
	/* 微信小程序中的样式 */
	/* #ifdef MP-WEIXIN */
	view { color: #0000FF }
	/* #endif */
</style>
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孤安先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值