vue3踩坑

1.路由获取

const route = useRoute();

只能在setup方法中获取一次,之后直接调用route就好了,否则第二次调用useRoute()会获取不到

2.echarts初始化
需要使用以下方式初始化,不能使用refs的方式

const echartsId = 'echarts_' + Math.random().toString(36).substr(2);
const echartsEl = document.getElementById(echartsId);
myEchart = echarts.init(echartsEl);

3.$refs已不能使用,需要使用以下方式

setup() {
	const cumRef = ref(null);
	return { cumRef }; 
}
<template>
	<div ref="cumRef"></div>
<template>

4.vue3.2.X vue-tsc检查
vue3.2.x之前必须使用<script>import MAliplayer from "./Maliplayer.ts";
vue3.2.x 之后必须使用<script lang="ts">import MAliplayer from "./MAliplayer";并且ts文件中必须使用export default defineComponent({ setup() ….})

5.props定义default函数方式

export default defineComponent({
  name: 'echarts',
  props: {
    option: {
      type: Object,
      default() {  // 不能使用这种方式必须使用箭头函数,否则会导致类型推断失败
        return {};
      }
    },
    styles: {
      type: Object,
      default: () => {
        return {
          width: '100%',
          height: '100%'
        };
      }
    },
  },

props里面定义的default需要用default: ()=>{},不能用 default(){},用default(){}这种方式会导致props类型推断失败

6.defineComponent中Array类型自定义

export default defineComponent({
  name: 'Prize-Template-Form',
  components: { PutawayList },
  props: {
    isEdit: {
      type: Boolean,
      required: false,
      default: false
    },
    tmpModeList: {
      type: Array as () => Common.Config.Param[],
      required: true,
      default: () => {
        return [];
      }
    },
…
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值