# 55.Vue单文件组件

# 1.传统组件的问题和解决方案

1.问题

1.全局定义的组件必须保证组件的名称不重复

2.字符串模板缺乏语法高亮, 在 HTML 有多行的时候, 需要用到丑陋的 \

3.不支持 CSS 意味着当 HTML 和 Javascript 组件化时, CSS明显被遗漏

4.没有构建步骤限制, 只能使用 HTML 和 ES5 Javascript, 而不能使用预处理器 (如: Babel)

2.解决方案

针对传统组件的问题, Vue 提供了一个解决方案 ---- 使用 Vue 单文件组件.

# 2.Vue单文件组件的基本用法

单文件组件的组成结构

  • template 组件的模板区域
  • script 业务逻辑区域
  • style 样式区域

代码如下:

<template>
    <!-- 这里用于定义Vue组件的模板内容 -->
</template>

<script>
    // 这里用于定义Vue组件的业务逻辑
      export default {
        data() {} 
        },  // 私有数据
        methods: {}  // 处理函数
  	    // ... 其它业务逻辑
      }
</script>

<style scoped>
    /*这里用于定义样式代码区域*/
</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

补充:安装Vetur插件可以使得.vue文件中的代码高亮

# 3.webpack中配置vue组件的加载器

① 运行 npm i vue-loader vue-template-compiler -D 命令

② 在 webpack.config.js 配置文件中, 添加 vue-loader 的配置项如下:

const VueLoaderPlugin = require('vue-loader/lib/plugin')
module.exports = {
  module: {
    rules: [
      // ...其它规则
      { test: /\.vue$/, use:'vue-loader' }
    ]
  },
  plugins: [
    // ... 其它插件
    new VueLoaderPlugin()  // 请确保引入这个插件!
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
上次更新: 2020/10/27 下午11:58:10