发布时间:2023-05-28 文章分类:WEB开发, 电脑百科 投稿人:赵颖 字号: 默认 | | 超大 打印

HBuilderX和微信开发工具联合开发小程序

一,安装uView2

1.uView安装

2.查看官方文档uView配置

 二,

1.现在pages文件新建四个vue页面

uniapp+uView自定义底部tabBer

2.在pages.json配置导航栏,因为要在微信开发者工具运行,要配置custom

"tabBar": {
		"custom": true,
		"list": [{
				"pagePath": "pages/index/index",
				"text": "首页"
			},
			{
				"pagePath": "pages/categry/categry",
				"text": "分类"
			},
			{
				"pagePath": "pages/car/car",
				"text": "购物车"
			},
			{
				"pagePath": "pages/user/user",
				"text": "用户"
			}
		]
	},

3.在项目根目录新建文件夹存放自定义组件index.vue并引入

custom-tab-bar

uniapp+uView自定义底部tabBer

 5.在uView复制需要的tabber代码,这里我用的是--固定在底部(固定在屏幕最下方)

<u-tabbar
	:value="value6"
	@change="name => value6 = name"
	:fixed="true"
	:placeholder="true"
	:safeAreaInsetBottom="true"
>
	<u-tabbar-item text="首页" icon="home" ></u-tabbar-item>
	<u-tabbar-item text="放映厅" icon="photo" ></u-tabbar-item>
	<u-tabbar-item text="直播" icon="play-right" ></u-tabbar-item>
	<u-tabbar-item text="我的" icon="account" ></u-tabbar-item>
</u-tabbar>
<!-- data -->
value6: 0,

 6.这是还是原生的tabber,需要到App.vue的onLaunch周期添加--uni.hideTabBar()--隐藏原生的tabber

onLaunch: function() {
			console.log('App Launch')
			uni.hideTabBar()
		}

7.此时tabber点击但不跳转,将当前高亮的值存入vuex,新建一个vuex。按照步骤新建store/index.js -

// 页面路径:store/index.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex);//vue的插件机制
//Vuex.Store 构造器选项
const store = new Vuex.Store({
	state:{//存放状态
		"username":"foo",
		"age":18
	}
})
export default store

在 main.js 中导入文件。

// 页面路径:main.js
import Vue from 'vue'
import App from './App'
import store from './store'
Vue.prototype.$store = store
// 把 store 对象提供给 “store” 选项,这可以把 store 的实例注入所有的子组件
const app = new Vue({
	store,
	...App
})
app.$mount()

阅读uView可知在@change绑定事件中获取到当前高亮索引,然后将active存入state,  在组件通过this.store.state获取active

8.页面刷新时页面位置不变,高亮位置对应vuex的active,用uni.setStorage存储,在beforeupdata前的勾子用uni.getStorage获取,实现页面刷新时页面与tabber高亮位置对应