返回
Vue 项目 Webpack 打包构建入门与配置详解
前端
2024-02-19 08:11:22
## Vue 项目之 Webpack 打包 Vue 代码(4)
「这是我参与 11 月更文挑战的第 23 天,活动详情查看:[2021 最后一次更文挑战](https://juejin.cn/post/7038155167558279198)」
前面说到,我们要把 `template` 选项中的内容、`data` 选项中的内容以及样式代码分别抽离出来,然后分别放在对应的文件中。这里我们用一个计数器的例子来演示一下。
```html
<!-- App.vue -->
<template>
<div id="app">
<p>{{ count }}</p>
<button @click="increment">+</button>
</div>
</template>
<script>
export default {
data() {
return {
count: 0
}
},
methods: {
increment() {
this.count++
}
}
}
</script>
<style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>
首先,我们把 template
选项中的内容抽离出来,放到一个单独的 HTML 文件中,比如 App.html
:
<!-- App.html -->
<div id="app">
<p>{{ count }}</p>
<button @click="increment">+</button>
</div>
然后,我们把 data
选项中的内容抽离出来,放到一个单独的 JavaScript 文件中,比如 App.js
:
// App.js
export default {
data() {
return {
count: 0
}
},
methods: {
increment() {
this.count++
}
}
}
最后,我们把样式代码抽离出来,放到一个单独的 CSS 文件中,比如 App.css
:
/* App.css */
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
现在,我们的 App.vue
文件就只剩下一个空壳了:
<!-- App.vue -->
<template>
<div id="app">
<!-- 这里什么都没有了 -->
</div>
</template>
<script>
import App from './App.js'
export default App
</script>
<style>
@import './App.css';
</style>
通过这种方式,我们就把 Vue 组件的模板、数据和样式代码分离开来了。这样做的好处有很多,比如:
- 代码的可维护性更高。 当我们把组件的各个部分分离开来之后,代码的可维护性就会更高。比如,当我们需要修改组件的样式时,我们只需要修改
App.css
文件就可以了,而不用去修改App.vue
文件。 - 代码的复用性更高。 当我们把组件的各个部分分离开来之后,代码的复用性也会更高。比如,我们可以把
App.js
文件中的数据逻辑复用