uniapp项目实践总结(七)编写一个简单的应用页面

之前自定义了顶部和底部导航栏,那接下来就写一个简单的二级页面,这个是出了导航页面之外经常用到的。

目录

  • 结构
  • 模板
  • 样式
  • 方法
  • 示例

结构

一个普通页面的结构应该是如下所示:

<!-- html -->
<template>
  <view class="list"> 列表内容 </view>
</template>
<!-- js -->
<script setup name="list"></script>
<!-- css -->
<style lang="scss" scoped></style>

模板

uniapp 内置了常用的组件,可以直接使用,和微信小程序一样。

容器类

  • view
  • scroll-view
  • swiper

文本类

  • icon
  • text
  • rich-text
  • progress

表单类

  • form
  • input
  • textarea
  • label
  • radio
  • checkbox
  • button
  • picker
  • slider
  • switch

其他

  • navigator
  • image
  • audio
  • video
  • webview
  • canvas
  • map

样式

样式支持cssscsslessstylus,支持@import导入外部样式表。

尺寸

通用尺寸

支持以下通用尺寸:

  • rpx响应式 px
  • px屏幕像素
特殊尺寸

nvue 不支持,vue 支持:

  • rem根字体大小
  • vhviewpoint height,视窗高度,
  • vwviewpoint width,视窗宽度,

nvue 不支持百分比;

计算公式

uni-app 中页面的宽度计算公式:

750 * 元素在设计稿中的宽度 / 设计稿基准宽度

例如:

  • 设计稿宽度为 750px,元素 A 在设计稿的宽度为 100px,那么元素在 uniapp 里面的宽度为750*100/750为 100rpx;

  • 设计稿宽度为 375px,元素 A 在设计稿的宽度为 100px,那么元素在 uniapp 里面的宽度为750*100/375为 200rpx;

导入

使用@import 'path/name.scss';

例如:

@import "./index.scss";

全局样式

App.vue中的样式即为全局样式,对于每一个页面通用,nvue 页面不支持全局样式。

内联样式

在组件的属性中使用 class 或者 style 添加样式。

<!-- style -->
<view :style="{'width': '100rpx'}"> </view>
<!-- class -->
<view class="block"></view>

选择器

在 uniapp 中,*选择器无效,page相当于body,微信小程序仅支持class选择器。

选择器 样例 样例描述
.class .intro 选择所有拥有 class=“intro” 的组件
#id #firstname 选择拥有 id=“firstname” 的组件
element view 选择所有 view 组件
element, element view, checkbox 选择所有文档的 view 组件和所有的 checkbox 组件
::after view::after 在 view 组件后边插入内容,仅 vue 页面生效
::before view::before 在 view 组件前边插入内容,仅 vue 页面生效

css 变量

CSS 变量 描述 App 小程序 H5
–status-bar-height 系统状态栏高度 系统状态栏高度、nvue 注意见下 25px 0
–window-top 内容区域距离顶部的距离 0 0 NavigationBar 的高度
–window-bottom 内容区域距离底部的距离 0 0 TabBar 的高度
NavigationBar 导航栏 44px 44px
TabBar 底部选项卡 HBuilderX 2.3.4 之前为 56px,2.3.4 起和 H5 调为一致,统一为 50px。(但可以自主更改高度) 50px

字体

使用@font-face自定义字体。

@font-face {
   
    font-family: 'iconfont',
    src: url('iconfont.ttf') format('truetype');
}

.test {
   
    font-family: 'iconfont';
}

方法

这是 js 中的一些内容。

这里重点关注一下生命周期,包括页面的组件的生命周期。

页面生命周期

常用到的就是onLaunchonLoadonShowonHide等钩子函数。

函数名 说明 平台差异说明 最低版本
onInit 监听页面初始化,其参数同 onLoad 参数,为上个页面传递的数据,参数类型为 Object(用于页面传参),触发时机早于 onLoad 百度小程序 3.1.0+
onLoad 监听页面加载,该钩子被调用时,响应式数据、计算属性、方法、侦听器、props、slots 已设置完成,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参),参考示例
onShow 监听页面显示,页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面
onReady 监听页面初次渲染完成,此时组件已挂载完成,DOM 树($el)已可用,注意如果渲染速度快,会在页面进入动画完成前触发
onHide 监听页面隐藏
onUnload 监听页面卸载
onResize 监听窗口尺寸变化 App、微信小程序、快手小程序
onPullDownRefresh 监听用户下拉动作,一般用于下拉刷新,参考示例
onReachBottom 页面滚动到底部的事件(不是 scroll-view 滚到底),常用于下拉下一页数据。具体见下方注意事项
onTabItemTap 点击 tab 时触发,参数为 Object,具体见下方注意事项 微信小程序、QQ 小程序、支付宝小程序、百度小程序、H5、App、快手小程序、京东小程序
onShareAppMessage 用户点击右上角分享 微信小程序、QQ 小程序、支付宝小程序、抖音小程序、飞书小程序、快手小程序、京东小程序
onPageScroll 监听页面滚动,参数为 Object nvue 暂不支持
onNavigationBarButtonTap 监听原生标题栏按钮点击事件,参数为 Object App、H5
onBackPress 监听页面返回,返回 event = {from:backbutton、 navigateBack} ,backbutton 表示来源是左上角返回按钮或 android 返回键;navigateBack 表示来源是 uni.navigateBack;详见 app、H5、支付宝小程序
onNavigationBarSearchInputChanged 监听原生标题栏搜索输入框输入内容变化事件 App、H5 1.6
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮您写一个简单uniapp项目示例,让您了解如何创建一个基本的应用程序。 1. 创建一个新的Uniapp项目 在HBuilderX中,点击“新建项目”,选择“uni-app”模板,填写项目名称和路径,选择需要的模板类型,如下图所示: ![创建uniapp项目](https://img-blog.csdnimg.cn/20210811145554684.png) 2. 配置项目项目根目录下的manifest.json文件中,可以设置应用程序的名称、图标、启动页、权限等,如下图所示: ![配置uniapp项目](https://img-blog.csdnimg.cn/20210811145807634.png) 3. 编写页面 在pages目录下创建一个新的页面,例如index.vue,编写页面的HTML、CSS和JavaScript代码,如下所示: ``` <template> <div class="container"> <h1>{{ title }}</h1> <p>{{ content }}</p> </div> </template> <script> export default { data() { return { title: 'Hello World!', content: 'This is a simple uniapp project.' } } } </script> <style> .container { text-align: center; margin-top: 200px; } </style> ``` 4. 运行应用程序 点击运行按钮,选择运行平台(Web、iOS、Android),等待应用程序构建和打包完成后,可以在模拟器或真机上运行应用程序,如下图所示: ![运行uniapp项目](https://img-blog.csdnimg.cn/20210811150031520.png) 5. 发布应用程序 在HBuilderX中,可以选择打包发布应用程序,包括Web应用程序、iOS应用程序和Android应用程序。可以选择发布到应用商店或者自己的服务器上,如下图所示: ![发布uniapp项目](https://img-blog.csdnimg.cn/20210811150201776.png) 这是一个简单uniapp项目示例,您可以根据自己的需要进行修改和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值