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

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

相关文章
|
2月前
|
JavaScript 前端开发
Vue2整合TypeScript:借助vue-property-decorator以类模式编写组件
Vue2整合TypeScript:借助vue-property-decorator以类模式编写组件
146 3
|
7月前
|
JavaScript 数据可视化 算法
vue3+threejs可视化项目——搭建vue3+ts+antd路由布局(第一步)
vue3+threejs可视化项目——搭建vue3+ts+antd路由布局(第一步)
123 6
|
6月前
|
JavaScript 前端开发
|
7月前
|
前端开发 JavaScript 定位技术
Docusaurus框架——react+antd+echarts自定义mdx生成图表代码解释文档
Docusaurus框架——react+antd+echarts自定义mdx生成图表代码解释文档
681 0
|
JavaScript 程序员
vue非单文件组件的使用方法
vue非单文件组件的使用方法
|
7月前
|
JavaScript 前端开发 IDE
Vue3【为什么选择Vue框架、Vue简介 、Vue API 风格 、Vue开发前的准备 、Vue项目目录结构 、模板语法、属性绑定 、 】(一)-全面详解(学习总结---从入门到深化)
Vue3【为什么选择Vue框架、Vue简介 、Vue API 风格 、Vue开发前的准备 、Vue项目目录结构 、模板语法、属性绑定 、 】(一)-全面详解(学习总结---从入门到深化)
108 1
|
7月前
|
JavaScript
Vue工具和生态系统:请解释Vue中的mixin是什么?有哪些注意事项?
Vue工具和生态系统:请解释Vue中的mixin是什么?有哪些注意事项?
48 0
vant-函数式组件用法
vant-函数式组件用法
98 0
|
JavaScript
vue项目引用vant组件库
vue项目引用vant组件库
|
JSON 小程序 数据格式
小程序引入vant weapp组件的方法
小程序引入vant weapp组件的方法