*.vue
文件是 Vue.js 框架中使用的一种文件格式,它允许开发者以单文件组件(Single-File Components,简称 SFCs)的形式组合 HTML、CSS 和 JavaScript 代码,这种格式的目的是将组件的模板、逻辑和样式封装在同一个文件中,有助于组织和管理代码结构,尤其是在构建大型、复杂的单页应用(SPA)时。
*.vue
文件,是一个自定义的文件类型,用类似HTML的语法描述一个Vue组件,每个.vue文件包含三种类型的顶级语言块 <template>
, <script>
和 <style>
,这三个部分分别代表了 html
,js
,css
。
注意:
1)不能直接将HTML
代码包裹在<template></template>
中,而是必须在里面放置一个html
标签来包裹所有的代码,一般情况下使用<div></div>
标签包含其他代码,也可以使用其他标签,只要有一个根元素即可。
<template>
<div>
...
</div>
</template>
2)js
代码写在<script>
标签中,并通过export
导出
<script>
export default {
name: 'App'
}
</script>
下面是一个 *.vue
文件的基本结构:
<template>
<!-- 这里是 HTML 模板部分 -->
<div>
{{ message }}
</div>
</template>
<script>
// 这部分是 JavaScript 逻辑
export default {
data() {
return {
message: 'Hello Vue!'
}
}
}
</script>
<style scoped>
/* 这里是 CSS 样式部分 */
div {
color: red;
}
</style>
在这个结构中,.vue
文件分为三个部分:
<template>
标签区域:这里包含了组件的 HTML 模板,可以使用 Vue.js 的模板语法,比如插值、指令(如 v-if
、v-for
等)、绑定的属性等。
<script>
标签区域:这里是组件的 JavaScript 逻辑,它是一个导出的对象(Vue 组件选项对象),可以包含数据、计算属性、方法、生命周期钩子等组件逻辑。
<style>
标签区域:这里定义了该组件的 CSS 样式,使用 scoped
属性时,样式只应用于当前组件内的元素,这避免了不同组件间的样式冲突。
Vue.js 使用 webpack 和 vue-loader(或其他类似的构建工具和加载器)来处理这些 *.vue
文件,分别提取模板、脚本和样式部分,进行相应的处理,比如:
由于单文件组件清晰地分离了不同的关注点而又紧密地将它们组合在一起,所以它们非常受到 Vue.js 开发者的青睐,并成为 Vue.js 应用开发的标准。