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编辑

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

相关文章
|
前端开发 JavaScript 测试技术
30个前端和设计必备网站,让你的工作更轻松!
30个前端和设计必备网站,让你的工作更轻松!
2078 1
|
达摩院 Java 测试技术
最新迭代|FunASR离线文件转写软件包2.0
最新迭代|FunASR离线文件转写软件包2.0
1163 0
|
机器学习/深度学习 人工智能 编解码
AI虫子种类识别数据集(近3000张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
本数据集包含近3000张已划分、标注的虫子图像,适用于YOLO系列模型的目标检测与分类任务。涵盖7类常见虫子,标注采用YOLO格式,结构清晰,适合农业智能化、小样本学习及边缘部署研究。数据来源多样,标注精准,助力AI虫害识别落地应用。
|
JavaScript
Vue 打包后打开为空白页面 并且控制台报错‘Failed to load resource: net::ERR_FILE_NOT_FOUND’
Vue 打包后打开为空白页面 并且控制台报错‘Failed to load resource: net::ERR_FILE_NOT_FOUND’
Vue 打包后打开为空白页面 并且控制台报错‘Failed to load resource: net::ERR_FILE_NOT_FOUND’
Vue3通知提醒(Notification)
这是一个基于 Vue2 的通知提醒框组件,支持高度自定义设置,包括消息标题、自动关闭延时、弹出位置等。提供了五种样式:默认、信息、成功、警告和错误,并可通过不同方法调用以实现相应样式。组件还支持多种位置设置,如顶部左侧、顶部右侧、底部左侧和底部右侧,并允许调整与屏幕边缘的距离。
736 3
Vue3通知提醒(Notification)
|
前端开发 JavaScript UED
axios取消请求CancelToken的原理解析及用法示例
axios取消请求CancelToken的原理解析及用法示例
855 0
|
JavaScript 前端开发 API
Vue3之script-setup 语法糖
本文介绍了Vue 3的`<script setup>`语法糖,通过示例代码演示了如何在组件中使用`<script setup>`以及相关的Vue 3 Composition API函数和特性,如响应式引用、生命周期钩子、CSS模块等,并展示了组件间的通信和样式应用。
419 0
Vue3之script-setup 语法糖
|
前端开发
css动画(仿微信聊天页面)
css动画(仿微信聊天页面)
|
JavaScript 数据库
Vue实现上传图片转base64编码(案例详细步骤)
我们在写后台管理系统的时候,有时候需要上传图片,那么就要用到upload组件,这里将上传的图片转换成为了base64编码传给后台,记录一下实现的过程
4267 1
Vue实现上传图片转base64编码(案例详细步骤)
游戏辅助 -- 三种分析角色坐标方法(CE、xdbg、龙龙遍历工具)
游戏辅助 -- 三种分析角色坐标方法(CE、xdbg、龙龙遍历工具)
707 0