Vue3使用Vant组件库避坑总结

文章目录

  • 前言
  • 一、问题
  • 二、解决方法
  • 三、问题出现原因
  • 总结经验教训


Vue3使用Vant组件库避坑总结_第1张图片

前言

本片文章主要写了,Vue3开发时运用Vant UI库的一些避坑点。让有问题的小伙伴可以快速了解是为什么。也是给自己做一个记录。


一、问题

vue3版本使用vant失败,具体是在使用组件时失效。
具体实例:Vue版本3 - Vant版本4
根据Vant官方文档可以知道使用组件应该这样引入使用

import { Button } from 'vant';
<van-button type="primary">主要按钮van-button>

但是我在实际根据官方文档使用却发现无法生效:
源代码:

<template>
  <van-button @click="testClick" type="primary">主要按钮{{ show }}van-button>
template>
<script lang="ts" setup>
	import { ref } from 'vue'
	import {
	  Button
	} from 'vant'
	import 'vant/es/button/style';
	const show = ref(false);
	const testClick = () => {
	  show.value = !show.value
	};
</script>

实际发现,所有的样式都没有生效,但是点击事件可以正常点击,然后我们打开控制台,可以看到组件并没有被正常的编译成普通的div元素,所以Vant并没有生效。
在这里插入图片描述

Vue3使用Vant组件库避坑总结_第2张图片
会不会是不支持语法糖这种写法呢。然后换成官方提供的另一种写法再试试。

<script lang="ts">
	import { ref } from 'vue'
	import {
	  Button
	} from 'vant'
	import 'vant/es/button/style';
	export default {
	  components: {
	    [Button.name]: Button,
	  },
	  setup() {
	    const show = ref<boolean>(false);
	    const testClick =()=> {
	      show.value = !show.value
	    }
	    return {
	      show,
	      testClick 
	    }
	  }
	}
</script>

去掉语法糖的写法,ui效果可以正常显示了
Vue3使用Vant组件库避坑总结_第3张图片
那么问题来了为什么换成这种语法糖的这种写法就不行了呢。
1、是不是版本不对的问题呢,然后降级,把Vant版本降为3版本再试试还是不行,这里就不演示了,有空的小伙伴可以去试试。
既然问题不是版本问题,那就还是在组件使用上有问题。

二、解决方法

1、如何找到解决办法
可以观察到,语法糖的形式,在引入组件的方式上,少了注册组件的这一步,因为语法糖的写法,会自动注册不需要手动注册组件。
我们可以看到我们从Vant导入的是Button组件,但是使用的时候用的是是不是组件名称使用错误的问题呢。我们把组件名改成

你可能感兴趣的:(vue学习笔记,vue.js,前端框架)