Vue TypeScript 递归组件

Dmi*_*try 3 recursion typescript vue.js

我有一个带有递归的简单打字稿组件:

<template>
  <div :style="{ paddingLeft: depth * 20 + 'px' }">
    <h1>Level {{ depth }}</h1>
    <div v-if="depth < 2">
      <Recursive v-for="i in 3" :key="i" :depth="depth + 1"/>
    </div>
  </div>
</template>

<script lang="ts">
import * as Vue from "vue";
import { Component, Prop } from "vue-property-decorator";

@Component({
  components: { Recursive }
})
class Recursive extends Vue {
  @Prop({ required: true })
  depth!: number;
}

export default Recursive;
</script>
Run Code Online (Sandbox Code Playgroud)

演示: https: //codesandbox.io/s/vue-typescript-recursive-12u3q ?file=/src/components/Recursive.vue

它在开发模式下运行良好。

但是一旦我进行了构建,递归导入将被编译成这些类型的字符串:

<!--function(e,n,r,o){return ln(t,e,n,r,o,!0)}-->而不是 html。

我应该怎么做才能使递归正常工作?

Dmi*_*try 5

我忘记在装饰器中设置组件的名称@Component

@Component({
  name: 'Recursive',
  components: { Recursive }
})
Run Code Online (Sandbox Code Playgroud)

该代码将在开发和编译模式下运行。