当前位置: 首页 > news >正文

vue3+ts+uniapp微信小程序顶部导航栏

这是colorui改的,不用就不用看啦

color-ui(https://docs.xzeu.com/#/)
在这里插入图片描述

  1. 新建component文件夹创建topNavigation.vue
<template><view><view class="cu-custom" :style="'height:' + CustomBar + 'px'"><view class="cu-bar fixed" :style="styleBar" :class="[bgImage ? 'none-bg text-white bg-img' : '', bgColor]"><view class="action" @tap="BackPage" v-if="isBack"><text class="cuIcon-back"></text><slot name="backText"></slot></view><view class="content" :style="[{ top: StatusBar + 'px' }]"><slot name="content"></slot></view><slot name="right"></slot></view></view></view>
</template><script lang="ts" setup>import { onLoad } from '@dcloudio/uni-app'
import { defineComponent, ref } from 'vue';
const props = defineProps<{bgColor: {type: String,default: ''},isBack: {type: [Boolean, String],default: false},bgImage: {type: string,default: ''}
}>()
let CustomBar = ref(0)
const StatusBar = ref(0)
let styleProps=ref('background-image:url('+props.bgImage+');')
let styleBar=ref('')
onLoad(() => {CustomBar.value = uni.getStorageSync('customBar')StatusBar.value = uni.getStorageSync('statusBar')styleBar.value='height:'+CustomBar.value+'px;padding-top:'+StatusBar.value+'px;'if (styleProps) {styleBar.value = styleBar.value+styleProps.value;}
})
const BackPage = () => {// if (getCurrentPages().length < 2 && 'undefined' !== typeof __wxConfig) {// 	let url = '/' + __wxConfig.pages[0]// 	return uni.redirectTo({url})// }uni.navigateBack({delta: 1});
}
</script><style scoped></style>
  1. 定义为全局组件main.ts
import { createSSRApp } from "vue";
import App from "./App.vue";
import cuCustom from './colorui/components/cu-custom.vue'
import pinia from './stores'
import TopNavigation from "./compontens/topNavigation.vue";export function createApp() {const app = createSSRApp(App);app.component('cu-custom',cuCustom)app.component('top-nav',TopNavigation)app.use(pinia)
// app.config.globalProperties.$httpreturn {app,};
}

3.App.vue获取customBar,statusBar
也可以用pinia存储

<script setup lang="ts">
import { onLaunch, onShow, onHide } from "@dcloudio/uni-app"onLaunch (()=>{uni.getSystemInfo({success: function (e) {let CustomBar=0let StatusBar=0if (e.platform == 'android') {CustomBar = e.statusBarHeight + 50;} else {CustomBar = e.statusBarHeight + 45;};// mp-weixinStatusBar = e.statusBarHeight;let custom = wx.getMenuButtonBoundingClientRect();CustomBar = custom.bottom + custom.top - e.statusBarHeight + 4;// 这个是MP-ALIPAY// StatusBar = e.statusBarHeight;// CustomBar = e.statusBarHeight + e.titleBarHeight;uni.setStorageSync('customBar',CustomBar)uni.setStorageSync('statusBar',StatusBar)}})})onShow(()=>{console.log('App Show')}),onHide(()=>{console.log('App Hide')})</script>
<style>
/*每个页面公共css */
@import "colorui/main.css";
@import "colorui/icon.css";
</style>
  1. 使用
<template><view><view><top-nav bgColor="bg-greenac70" bgImage="https://iknow-pic.cdn.bcebos.com/b3fb43166d224f4a893e388d1bf790529922d18d"isBack="true"><block slot="backText">返回</block><block slot="content">标题</block></top-nav></view></view></template>
http://www.lryc.cn/news/495441.html

相关文章:

  • IAR中编译下载未下载问题
  • springboot(20)(删除文章分类。获取、更新、删除文章详细)(Validation分组校验)
  • 英语系统语法书面记载:高级语法 8 的状语从句
  • C语言:深入理解指针(1)
  • priority_queue--优先队列
  • Paper -- 建筑物高度估计 -- 基于深度学习、图像处理和自动地理空间分析的街景图像建筑高度估算
  • 开发一套ERP 第八弹 RUst 插入数据
  • 回退用 git revert 还是 git reset?
  • 【docker】多阶段构建与基础构建,及企业案例展示
  • 基于链表的基础笔试/面试题
  • SARIMA 模型Matlab代码
  • 第八课 Unity编辑器创建的资源优化_特效篇(Particle System)详解
  • Oracle对比表与表之间的结构
  • 基于JSP+MySQL的网上招聘系统的设计与实现
  • 【Linux】进程地址空间(虚拟地址vs物理地址vs页表)
  • pytorch 融合 fuse 学习笔记
  • 在 Ubuntu 20.04 上使用 Lux 下载 Bilibili 视频的详细教程
  • 【eclipse】快捷键
  • 集成开发环境(IDE)的使用技巧插件配置
  • 【如何提升代码工程质量】code review篇
  • Qt 面试题学习13_2024-12-1
  • Hive 安装与架构详解
  • 前端入门指南:模块打包器是什么?模块打包器的工作原理与实践
  • 初识ProtoBuf以及环境搭建(Win和Ubuntu)
  • springboot366高校物品捐赠管理系统(论文+源码)_kaic
  • 【Python网络爬虫笔记】5-(Request 带参数的get请求) 爬取豆瓣电影排行信息
  • 递归算法讲解(c基础)
  • AJAX一、axios使用,url组成(协议,域名,资源路径)查询参数和化简,错误处理,请求/响应报文,状态码,接口文档,
  • QT6学习第六天 初识QML
  • 映射vim键位,基本功能键位表(未更完)