异步加载组件,在当前组件需要被加载时才会加载
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
</style>
</head>
<body>
<div id="app">
<App></App>
</div>
<script src="./vue.js"></script>
// 2.设置type='module'
<script type='module'>
// import xxx from './modules.js';
const App = {
data() {
return {
isShow: false
}
},
methods: {
asyncLoad() {
this.isShow = !this.isShow;
}
},
components: {
// 1.()=>import导入
Test:()=>import('./Test.js')
},
template: `
<div>
<button @click='asyncLoad'>异步加载</button>
<Test v-if='isShow'></Test>
</div>
`,
}
new Vue({
el: '#app',
components: {
App
}
})
</script>
</body>
</html>
Test.js文件
export default {
data() {
return {
msg: '异步'
}
},
template: `
<h3>{{msg}}</h3>
`
}