【发布时间】:2020-07-29 18:29:49
【问题描述】:
我知道我们可以简单地在模板中显示带有<ComponentName/>的组件输出,
但是我们如何在data、methods 或mounted 期间访问模板外部的ComponentName html 输出
例如components/Test.vue
<template>
<div>I'm a test</div>
</template>
在另一个 vue 文件中pages/ViewTest.vue
import Test from '~/components/Test.vue'
export default {
components: {Test},
data() {
return {
test: Test
}
},
mounted: function() {
console.log( Test ) // Output is Test Component Object
console.log( this.test ) // Output is Test Component Object
}
}
控制台日志输出的对象似乎包含很多信息,我什至可以从该对象中看到 render 属性,尽管当我尝试 console.log( Test.render() ) 时它给了我错误
所以我的问题是如何从模板外部获取<div>I'm a test</div>?
感谢任何帮助或指导
编辑
我正在使用vue-material-design-icons 包来生成不同的 svg 图标,
我可以像下面这样使用它
<template>
<MapMarkerRadius/>
</template>
<script>
import MapMarkerRadius from 'vue-material-design-icons/MapMarkerRadius'
export default {
components: {MapMarkerRadius}
}
</script>
现在这是我的主要问题, 我有这个生成 html 的组件
<template>
<div :class="'card'">
<div v-if="title" :class="'card-title'">
{{ title }}
</div>
<div :class="'card-content'">
<slot />
</div>
</div>
</template>
<script>
export default {
name: 'card',
props: {
title: {},
}
};
</script>
然后我在另一个 vue 文件上使用像这样的 card 组件
<template>
<card :title="'Title ' + MapMarkerRadius">
Test Content
</card>
</template>
<script>
import card from '~/components/Card'
import MapMarkerRadius from 'vue-material-design-icons/MapMarkerRadius'
export default {
components: {card, MapMarkerRadius}
};
</script>
我的问题是card title 的输出是Title [object]
【问题讨论】:
标签: javascript vue.js vuejs2 vue-component