我在我的VUE JS项目中使用了css的旋转频率元素。当我路由带有轮播元件的VUE实例时,它不会显示旋转频率元件。当我刷新页面时,它显示了轮播元素。我尝试了所有Vue实例生命周期钩子,但它不起作用。该解决方案是什么?
请注意,我已经包含了编译和缩小的CSS和JavaScript in index.html。
<template>
<div class="carousel">
<a class="carousel-item" href="#one!">1</a>
<a class="carousel-item" href="#two!">2</a>
<a class="carousel-item" href="#three!">3</a>
<a class="carousel-item" href="#four!">4</a>
<a class="carousel-item" href="#five!">5</a>
</div>
</template>
<script>
export default {
name: 'Home',
created() {
document.addEventListener('DOMContentLoaded', function() {
var elems = document.querySelectorAll('.carousel');
var instances = M.Carousel.init(elems, {
fullWidth: true,
indicators: true
});
});
}
}
</script>
不要使用DOMContentLoaded
事件。由于这个原因,Vue已经具有生命周期方法。
export default {
name: 'Home',
mounted() {
var elems = document.querySelectorAll('.carousel');
var instances = M.Carousel.init(elems, {
fullWidth: true,
indicators: true
});
}
};
如果您仅使用脚本标签
,也需要定义M
//vue.config.js
module.exports = {
chainWebpack: config => {
config.externals({
'M'
})
}
}
或从NPM和import M from 'materialize-css'
下载脚本。