在 Vue.js 中,我们可以使用 .vue 文件定义单文件组件。一个单文件组件由三个部位组成:
- template:组件模板
- script:组件逻辑
- style:组件样式
示例代码:
vue
<template>
<div class="hello">
<h1>{{ msg }}</h1>
<button @click="sayHi">Say Hi</button>
</div>
</template>
<script>
export default {
data() {
return {
msg: "Hello!"
}
},
methods: {
sayHi() {
alert("Hi!")
}
}
}
</script>
<style scoped>
.hello h1 {
color: blue;
}
</style>
使用单文件组件的好处:
- 组件的模板、逻辑、样式在同一个文件中,方便维护。
- 支持使用预处理器如 Pug、Babel、SCSS 等。
- 支持 scoped CSS ,避免样式冲突。
- 支持 module 方式编写 JS 和 CSS ,方便重构和测试。
- 易与模块打包工具如 Webpack 集成。
在 Vue CLI 创建的项目中,会默认使用 .vue 文件,快速入口开发。但在浏览器环境中,CSS 和 JS 仍需要提取,不支持直接引用 .vue 文件。
单文件组件的使用注意点:
- 一个 .vue 文件只定义一个组件。
- 组件名应与文件名同名,且首字母大写。
- template必须只有一个根节点。
- script 必须使用 export default 定义组件选项对象。
- style 可以添加 scoped 属性,在当前组件添加独立作用域。