vant4的基础用法

简介: 基于vue3和ts平台来使用这篇文章会手把手的教你如何用vant开发h5

基于vue3和ts平台来使用

这篇文章会手把手的教你如何用vant开发h5

介绍

      Vant 是一个轻量、可靠的移动端组件库,基于 Vue3,由有赞开发并且维护。有赞作为早期以 H5 商城、小程序商城做微信生态的起家, Vant 一直是这些产品的主要组成部分,有赞的技术团队一直在维护,非常可靠。

下面,将教大家如何使用vant4

1,安装

       npm i vant

       安装最新版本即可

2.注册

       2.1,局部注册

              在组件内单独注册

import { Button } from'vant'; //引入组件import'vant/lib/index.css'; //引入样式import { onMounted, ref } from"vue"exportdefault ({
setup() {
return {}
    },
components: {
vanButton: Button, //注册组件    },
})

image.gif

       2.2 ,全局注册

       在main.ts里全局注册组件

import { createApp } from'vue'importAppfrom'./App.vue'importrouterfrom'./router'importstorefrom'./store'importElementPlusfrom'element-plus'import'element-plus/dist/index.css'importvantfrom"vant"//1.引入vantimport'vant/lib/index.css'; //2。引入vant样式createApp(App).use(store).use(router).use(ElementPlus).use(vant).mount('#app') //3、链式调用use方法,将vant传入,完成全局注册,这里我直接省事,注册了所有的vant组件,按需注册import {Button} from"vant"createApp(App).use(store).use(router).use(ElementPlus).use(Button).mount('#app')

image.gif

      建议按需。

3.定义tabbat标签栏

      3.1 在router里定义3个组件,作为我们的底部导航栏切换的基础组件,同时在定义一个主组件,用来容纳定义的基础组件

                                         image.gif编辑

        3.2 在组件中定义好我们要显示的内容

<template><div>我是commodity组件</div></template><scriptlang="ts">exportdefault ({
setup() {
return {}
    }
})
</script><stylescoped></style>

image.gif

           3.3 注册路由,将组件和路由绑定

constroutes: Array<RouteRecordRaw>= [
  {
path:"/",  
name:"host",
redirect:"/home",
component:()=>import("../views/IndexHost.vue"),
children:[  
      {
path: '/home',
name: 'home',
component: () =>import("../views/home/IndexHome.vue")
      },
      {
path: '/user',
name: 'user',
component: () =>import('../views/user/IndexUser.vue')
      },
      {
path: '/commodity',
name: 'commodity',
component: () =>import('../views/commodity/IndexCommodity.vue')
      },
    ]
  },
]

image.gif

        3.4 ,在主组件(IndexHost.vue)中定义tabber标签(底部标签)和定义路由容器

<template><div><router-view/>//1.定义路由容器,显示在上层<div><van-tabbarv-model="active"><van-tabbar-itemname="home"icon="home-o"@click="cuttab('home')"replaceto="/home">首页</van-tabbar-item> //2.定义底部tab,通过actuve属性的来确定当前选中的是哪个tab,replacr为true,表示在当前页面跳转,to属性表示点击时跳转到这个路由<van-tabbar-itemname="search"icon="search"@click="cuttab('search')"replaceto="/commodity">商品</van-tabbar-item><van-tabbar-itemname="friends"icon="friends-o"@click="cuttab('friends')"replaceto="/user">用户</van-tabbar-item></van-tabbar></div></div></template><scriptlang="ts">import { ref } from'vue';
exportdefault ({
setup() {
constactive=ref('home');
constcuttab=(name:string)=>{  //3.定义方法,当点击tab时传入name,用name来替换avtive的值,实现点击时切换tab的交互active.value=name        }
return {
active,
cuttab        }
    }
})
</script><stylescoped></style>

image.gif

实现效果

image.gif编辑

4.往首页里填充内容

       找到我们的首页组件IndexHome.vue,在里面写首页的页面代码和逻辑,

       4.1在首页的顶部实现懒加载轮播图,

             这里轮播图我们使用本地的图片,在vue项目components里新建img文件夹,在里面放需要轮播展示的图片

                                      image.gif编辑

       使用轮播图组件实现懒加载轮回播放本地图片

<template><div><divclass="topimg"><van-swipe :autoplay="3000"lazy-renderheight="150">//3.autoplay是轮播间隔时间,height是轮播图在页面上占用的高度<van-swipe-itemv-for="image in images" :key="image">//4.图片组循环<img :src="image"/>//5.一次放入img标签渲染</van-swipe-item></van-swipe></div></div></template><scriptlang="ts">importa1from"@/components/imgs/a1.jpg"//1.导入图片importa2from"@/components/imgs/a2.jpg"exportdefault ({
setup() {
constimages= [ //2.将图片放入在images里面,供上方循环调用 a1,a2        ];
return {
images        }
    }
})
</script><stylescoped>.topimgimg{
width:100%;
height:150px;
}
</style>

image.gif

       效果图

image.gif编辑

4.2 接入echarts图表

     在首页组件中新建一个新的组件,用来存放echarts图表组件

                                               image.gif编辑

      具体代码如下

<template><div><divref="box"style="height:500px"></div></div></template><scriptlang="ts">import { ref } from"vue"import*asechartsfrom"echarts"import { onMounted } from"vue"exportdefault ({
setup() {
constbox=ref()
constfns= () => {
console.log(box.value)
varmyChart=echarts.init(box.value);
varoption= {
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
                },
yAxis: {
type: 'value'                },
series: [
                    {
data: [150, 230, 224, 218, 135, 147, 260],
type: 'line'                    }
                ]
            };
myChart.setOption(option);
        }
onMounted(fns)
return {
box        }
    }
})
</script><style></style>

image.gif

       在父组件中引入

image.gif编辑

效果

image.gif编辑

困困 写不动了 都不知道自己写了啥

相关文章
|
Android开发 芯片
ESP8266-mini-d1+点灯科技——制作手机远程MP3播放器
ESP8266-mini-d1+点灯科技——制作手机远程MP3播放器
1175 0
ESP8266-mini-d1+点灯科技——制作手机远程MP3播放器
|
资源调度 JavaScript API
vue3封装城市联动组件
vue3封装城市联动组件
590 63
|
小程序 搜索推荐 JavaScript
微信小程序使用Vant
微信小程序使用Vant
838 2
|
机器学习/深度学习 人工智能 编解码
AI虫子种类识别数据集(近3000张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
本数据集包含近3000张已划分、标注的虫子图像,适用于YOLO系列模型的目标检测与分类任务。涵盖7类常见虫子,标注采用YOLO格式,结构清晰,适合农业智能化、小样本学习及边缘部署研究。数据来源多样,标注精准,助力AI虫害识别落地应用。
|
负载均衡 Cloud Native Java
|
Linux Shell 网络安全
Linux 用户管理命令
本文详细介绍了Linux系统中的各类常用命令,包括用户管理(如`adduser`, `usermod`, `passwd`等)、系统操作(如关机、重启、注销)、磁盘管理(如`df`, `mkfs`, `mount`)及网络管理(如`ifconfig`, `ping`, `ssh`)等。通过具体示例展示了每个命令的基本用法和应用场景,帮助用户更好地理解和掌握Linux系统的管理和操作技巧。
|
监控 Android开发 iOS开发
深入探索安卓与iOS的系统架构差异:理解两大移动平台的技术根基在移动技术日新月异的今天,安卓和iOS作为市场上最为流行的两个操作系统,各自拥有独特的技术特性和庞大的用户基础。本文将深入探讨这两个平台的系统架构差异,揭示它们如何支撑起各自的生态系统,并影响着全球数亿用户的使用体验。
本文通过对比分析安卓和iOS的系统架构,揭示了这两个平台在设计理念、安全性、用户体验和技术生态上的根本区别。不同于常规的技术综述,本文以深入浅出的方式,带领读者理解这些差异是如何影响应用开发、用户选择和市场趋势的。通过梳理历史脉络和未来展望,本文旨在为开发者、用户以及行业分析师提供有价值的见解,帮助大家更好地把握移动技术发展的脉络。
1127 6
游戏辅助 -- 三种分析角色坐标方法(CE、xdbg、龙龙遍历工具)
游戏辅助 -- 三种分析角色坐标方法(CE、xdbg、龙龙遍历工具)
1911 0
|
JavaScript 前端开发 Java
springboot+vue旧物置换网站(完整源码+文档)
本文介绍了一个基于SpringBoot的旧物置换网站项目,由Java开发,使用SSH和SSM框架,JDK1.8,MySQL5.7+数据库,前端技术包括Node.js和Vue。系统架构包括管理员、卖家和用户三个角色,分别有各自的后台管理功能,如用户管理、旧物信息管理、置换交易管理等。此外,文章还提到了可用的Java毕设项目资源。如需获取项目源码或了解更多详情,可联系作者。