这是我面临的一个奇怪的问题。
<script src="https://unpkg.com/vue@2.6.11/dist/vue.min.js"></script>
<div id="app">
<transition-group name="fadeLeft" tag="ul">
<section key="0">
<testt></testt>
<template v-pre id="myId">
<div>My neighbors: <a v-for="(val,index) in myArray">{{val}}</a></div>
</template>
</section>
</transition-group>
</div>
<script>
Vue.component('testt', {
template: '#myId',
props: {
myArray: {
type: Array,
default: function() {
return ['James', 'Mike'];
}
}
}
})
new Vue({
el: '#app'
})
</script>
transition-group
两次渲染组件(第二次渲染在不解析“ {{variable}}
”的情况下完成)。
如果您只删除transition-group
父对象,它会按预期工作,并且没有重复的内容。因此,绝对问题似乎在那里。如何解决此问题(因此,保留transition-group
并解决问题)
请不要发布答案“在应用程序外部使用组件”或类似的问题,我描述了我需要找到答案的问题。同样,先行的是template
必须在transition-group
后代之内。
答案 0 :(得分:1)
问题:
在section
大头钉中,您有一个testt
标签,它是用已解析的HTML呈现的,还有template
,它是作为另一个文字标签呈现的(不呈现)。而且由于必须transition-group
个元素key
,因此必须将模板移出。
解决方案:
<script src="https://unpkg.com/vue"></script>
<div id="app">
<transition-group name="fadeLeft" tag="ul">
<section key="0">
<testt></testt>
</section>
</transition-group>
<template v-pre id="myId">
<div>My neighbors: <a v-for="(val,index) in myArray">{{val}} </a></div>
</template>
</div>
<script>
Vue.component('testt', {
template: '#myId',
props: {
myArray : { type:Array, default :function(){ return ['James','Mike'];} }
}
})
new Vue({
el: '#app'
})
</script>