Vue vant引入,tabbar封装使用示例

简介: 使用tabbarTempValue值来监听,使用active值来接收。这是为了防止props为单向数据绑定,在组件内改变值后会产生报错,父页面无法接收

Vant


tabbar使用教程:https://youzan.github.io/vant/#/zh-CN/tabbar于基本的安装、引入组件就不再详细讲解,请自行按照文档安装章节进行。


封装Tabbar


在不同页面显示tabbar,如果tabbar修改,则需要变动多个页面 封装成组件后,统一引用组件,修改tabbar则只需要改动组件文件


封装后引用代码


active代表要高亮组件中第几个图标,必须为数值


<template>
  <!-- 这里显示其他内容 -->
  <TabbarHtml v-bind:active=2 />
</template>
<script>
import TabbarHtml from '@/components/Tabbar.vue'
export default {
  components: {
    TabbarHtml
  }
}
</script>


tabbar组件代码


  • 使用tabbarTempValue值来监听,使用active值来接收。这是为了防止props为单向数据绑定,在组件内改变值后会产生报错,父页面无法接收


  • onChange事件监听并路由跳转 这里使用的是vue-router


<template>
  <div class="tabbar">
    <van-tabbar v-model="tabbarTempValue" @change="onChange">
      <van-tabbar-item icon="home-o" url="/Home">标签</van-tabbar-item>
      <van-tabbar-item icon="search">标签</van-tabbar-item>
      <van-tabbar-item icon="friends-o">标签</van-tabbar-item>
      <van-tabbar-item icon="setting-o">标签</van-tabbar-item>
    </van-tabbar>
  </div>
</template>
<script>
import Vue from 'vue';
import { Tabbar, TabbarItem } from 'vant';
import { Icon } from 'vant';
import { Notify } from 'vant';
Vue.use(Notify);
Vue.use(Tabbar).use(TabbarItem);
Vue.use(Icon);
export default {
  props: {
    active: Number
  },
  data() {
    return {
      tabbarTempValue: this.active
    }
  },
  methods: {
    onChange(index) {
      const routerArray = [
        "/",
        "/Home",
        "/Home",
        "/Home"
      ];
      this.$router.push(routerArray[index])
    }
  }
}
</script>
目录
相关文章
|
21小时前
|
移动开发 前端开发
vue3 Element-Plus封装的el-tree-select的使用
vue3 Element-Plus封装的el-tree-select的使用
vue3 Element-Plus封装的el-tree-select的使用
|
21小时前
|
JavaScript
vue打印v-model 的值
vue打印v-model 的值
|
21小时前
|
JavaScript
Vue实战-组件通信
Vue实战-组件通信
7 0
|
21小时前
|
JavaScript
Vue实战-将通用组件注册为全局组件
Vue实战-将通用组件注册为全局组件
7 0
|
21小时前
|
JavaScript 前端开发
vue的论坛管理模块-文章评论02
vue的论坛管理模块-文章评论02
|
21小时前
|
JavaScript Java
vue的论坛管理模块-文章查看-01
vue的论坛管理模块-文章查看-01
|
21小时前
|
JavaScript
VUE里的find与filter使用与区别
VUE里的find与filter使用与区别
18 0
|
21小时前
|
JavaScript
vue页面加载时同时请求两个接口
vue页面加载时同时请求两个接口
|
21小时前
|
JavaScript
vue里样式不起作用的方法,可以通过deep穿透的方式
vue里样式不起作用的方法,可以通过deep穿透的方式
14 0
|
21小时前
|
移动开发 JavaScript 应用服务中间件
vue打包部署问题
Vue项目`vue.config.js`中,`publicPath`设定为&quot;/h5/party/pc/&quot;,在线环境基于打包后的`dist`目录,而非Linux的`/root`。Nginx代理配置位于`/usr/local/nginx/nginx-1.13.7/conf`,包含两个相关配置图。
vue打包部署问题