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

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

相关文章
|
8月前
|
JavaScript 前端开发 Serverless
Vue.js的介绍、原理、用法、经典案例代码以及注意事项
Vue.js的介绍、原理、用法、经典案例代码以及注意事项
266 2
|
前端开发
组件库的封装之旅(入门scss)
这几天在封装组件库,今天和大家一起使用scss,学习一些scss的基础语法。 先来看一下scss的优势 SCSS (Sass) 有以下几个主要优势: - 可维护性:SCSS 允许使用变量、嵌套、混合、继承等特性,从而使样式表变得更加清晰、可读性增强。 - 更高效:SCSS 允许使用函数、循环等高级特性,使得样式定义更加高效。 - 更易扩展:SCSS 提供了组件化和模块化的技巧,可以更方便地扩展和维护代码。 - 更简单:SCSS 的语法比 CSS 更简洁易懂,允许编写更加简洁的样式表。 - 兼容性:SCSS 可以完全兼容 CSS,可以无缝地使用 再来看一下scss和其他对比 | | S
|
6月前
|
缓存 JavaScript 前端开发
react.js高级用法
【8月更文挑战第27天】react.js高级用法
70 2
|
8月前
|
JavaScript 前端开发
|
9月前
|
前端开发 JavaScript 定位技术
Docusaurus框架——react+antd+echarts自定义mdx生成图表代码解释文档
Docusaurus框架——react+antd+echarts自定义mdx生成图表代码解释文档
728 0
|
9月前
|
JavaScript
Vue工具和生态系统:请解释Vue中的mixin是什么?有哪些注意事项?
Vue工具和生态系统:请解释Vue中的mixin是什么?有哪些注意事项?
64 0
vant-函数式组件用法
vant-函数式组件用法
122 0
|
数据可视化 关系型数据库 MySQL
Python Flask Echarts数据可视化图表实战晋级笔记(2)@app.route装饰器的用法
Python Flask Echarts数据可视化图表实战晋级笔记(2)@app.route装饰器的用法
162 0
|
JavaScript 前端开发 开发工具
Javascript的进阶版--VUE,使用vue载入基本使用结构,封装过的js更好用 刘金玉编程
Javascript的进阶版--VUE,使用vue载入基本使用结构,封装过的js更好用 刘金玉编程
158 0
Javascript的进阶版--VUE,使用vue载入基本使用结构,封装过的js更好用 刘金玉编程