一、Vue Loader介绍

  Vue Loader 是一个 webpack 的loader,它允许你以一种名为 单文件组件(SFCs)的格式撰写 Vue 组件。官方文档地址如下所示:

  Vue Loader v15及以上版本官方文档地址

  Vue Loader v14 或更早的版本官方文档地址

1、vue-loader 特性

  • 默认支持 ES2015;
  • 允许对Vue组件的组成部分使用其他 webpack loader,比如对<style> 使用Sass 和对 <template> 使用 Jade;
  • 将 <style> 和 <template> 中的静态资源当作模块来对待,并使用 webpack loader 进行处理;
  • 对每个组件模拟出 CSS 作用域;
  • 支持开发期组件的热重载。

  简言之,编写 Vue.js 应用程序时,组合使用 webpack 和 vue-loader 能带来一个现代、灵活并非常强大的前端工作流程。

二、项目示例

1、项目准备和组件安装

  将 webpack-dev-server 项目复制为 single-file,安装 vue-loader 组件:

$ npm install vue-loader@14.2.4 -D

  安装vue的模板解析器: vue-template-compiler,注意要安装对应的版本号,才能适配。

$ npm install vue-template-compiler@2.5. -D

2、在webpack中配置vue-loader

  这里是在webpack.dev.config.js中配置vue-loader:

// node.js中内容模块
var path = require('path'); module.exports = {
// entry入口
entry: {
main: './src/main.js'
},
// output出口
output: {
path:path.resolve('./dist'), // 相对转绝对
filename: './bundle.js'
},
watch:true,
// 模块中的loader
module:{
loaders:[
{
test:/\.css$/, // css结尾的
loader:'style-loader!css-loader' // 依次识别
},
{
test:/\.vue$/,
loader:'vue-loader'
}
]
}
}

3、Vue组件规格

  *.vue 文件是用户用 HTML-like 的语法编写的 Vue 组件。每个 *.vue 文件都包括三部分:组件结构(template—>html)业务逻辑(script—>js)组件样式(style—>css)

  vue-loader 是一个webpack的loader,可以将用上面*.vue格式编写的*.vue组件转换为 javascript 模块。

  将App.js改写为App.vue。

<template>
<!-- template里一定是闭合标签 -->
<div class="app">
<h3>{{ msg }}</h3>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
</template> <script>
export default {
data () {
return {
msg: '学习单页组件!'
}
},
methods:{ },
computed:{ }
}
</script> <style>
h3 {
color: green;
}
.example {
color: red;
}
</style>

  执行npm run dev,自动打开浏览器:http://localhost:8081/ 就访问到刚刚写好的App.vue页面了。

  

3、创建并挂载子组件

(1)创建子组件header

<template>
<div>
<h3>{{att}}</h3>
</div>
</template> <script>
export default { // 组件抛出
name: "Header",
data() {
return {
att: "中美贸易战"
};
},
};
</script> <style lang="css" scoped> </style>

  组件创建完成后抛出。

(2)挂载子组件

  在App.vue文件中引入并挂载子组件:

<template>
<!-- template里一定是闭合标签 -->
<div class="app">
<h3>{{ msg }}</h3>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<Header/>
</div>
</template> <script>
// 1.导入组件
import Header from './Header.vue'
export default {
data () {
return {
msg: '学习单页组件!'
}
},
methods:{ },
computed:{ },
// 2.使用components挂载组件
components:{
Header
}
}
</script>
<style> /* 对全局样式起作用 */
h3 {
color: green;
}
.example {
color: red;
}
</style>

  显示效果如下所示:

  

  注意:vue组件中的style标签标有scoped属性时,表明style里的css只对当前组件的样式起作用

vue-loader和单页组件介绍的更多相关文章

  1. vue-loader介绍和单页组件介绍

    $ \es6\sing-file>  npm install vue-loader@14.1.1 -D vue-template-compiler@2.5.17 -D npm install v ...

  2. vue中的单文件组件

    之前都是在html文件中写组件的css,组件的js,组件的模板来演示vue组件的语法,下面介绍以.vue结尾的单文件组件.vue-loader是一个Webpack的loader,可以将单文件组件转换为 ...

  3. 使用 Vuex + Vue.js 构建单页应用【新篇】

    使用 Vuex + Vue.js 构建单页应用[新篇] 在去年的七月六号的时候,发布了一篇 使用 Vuex + Vue.js 构建单页应用 的文章,文章主要是介绍 vuex 的基本使用方法,发现对大部 ...

  4. 基于VUE的SPA单页应用开发-加载性能篇

    1.基于异步数据的vue页面刷新 先看看基于异步数据的vue页面刷新后,都发生了啥- 如图所示: 图1 基于异步数据的vue页面刷新 网络请求图 步骤如下: step1:请求页面: step2:请求页 ...

  5. vue+vuex构建单页应用

    基本 构建工具: webpack 语言: ES6 分号:行首分号规则(行尾不加分好, [ , ( , / , + , - 开头时在行首加分号) 配套设施: webpack 全家桶, vue 全家桶 项 ...

  6. 使用 Vuex + Vue.js 构建单页应用

    鉴于该篇文章阅读量大,回复的同学也挺多的,特地抽空写了一篇 vue2.0 下的 vuex 使用方法,传送门:使用 Vuex + Vue.js 构建单页应用[新篇] ------------------ ...

  7. vue入门之单文件组件

    介绍 在很多 Vue 项目中,我们使用 Vue.component 来定义全局组件,紧接着用 new Vue({ el: '#container '}) 在每个页面内指定一个容器元素. 这种方式在很多 ...

  8. Vue -3:单文件组件

    在很多 Vue 项目中,我们使用 Vue.component 来定义全局组件,紧接着用 new Vue({ el: '#container '}) 在每个页面内指定一个容器元素. 这种方式在很多中小规 ...

  9. vue学习之用 Vue.js + Vue Router 创建单页应用的几个步骤

    通过vue学习一:新建或打开vue项目,创建好项目后,接下来的操作为: src目录重新规划——>新建几个页面——>配置这几个页面的路由——>给根实例注入路由配置 src目录重整 在项 ...

随机推荐

  1. AOP软件设计

    什么是面向方面的编程? 为什么面向方面的软件设计? 术语 关注 视口 关注点分离 人工制品 横切 方面 编织 零件 形式主义 第二节 案例研究 关注 人工制品 横切 方面 AspectJ 加入点 切入 ...

  2. SpringMVC+ajax文件上传实例教程

    原文地址:https://blog.csdn.net/weixin_41092717/article/details/81080152 文件上传文件上传是项目开发中最常见的功能.为了能上传文件,必须将 ...

  3. app版本升级的测试点

    移动端版本更新升级是一个比较重要的功能点,主要分为强制更新和非强制更新. 1.强制更新需要测试的点有: 1)强制升级是否可以升级成功 从老版本的包升级到新版版的包是否可以升级成功. 2)升级后的数据是 ...

  4. 短的 Guid 帮助类

    直接贴代码了: /// <summary> /// 短的 Guid 帮助类 /// </summary> public class ShortGuidHelper { #reg ...

  5. 基于OceanStor Dorado V3存储之数据保护 Hyper 特性

    基于OceanStor Dorado V3存储之数据保护 Hyper 特性 1.1  快照 1.2  HyperCDP 1.3  HyperCopy 1.4  克隆(HyperClone) 1.5   ...

  6. ELK 日志平台 For Windows

    一.Logstash 安装 1. 下载最新版本的logstash:  https://www.elastic.co/fr/downloads/logstash 下载zip格式的压缩包. 然后解压缩放到 ...

  7. Kafka学习笔记之Kafka High Availability(上)

    0x00 摘要 Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务.若该Broker永 ...

  8. LOOP AT GROUP语法练习

    DATA:P_MENGE TYPE EKKO-WKURS. DATA:P_MENGE1 TYPE EKKO-WKURS. SELECT * FROM EKKO INTO TABLE @DATA(LT_ ...

  9. 网格弹簧质点系统模拟(Spring-Mass System by Fast Method)附源码(转载)

    转载:  https://www.cnblogs.com/shushen/p/5311828.html 弹簧质点模型的求解方法包括显式欧拉积分和隐式欧拉积分等方法,其中显式欧拉积分求解快速,但积分步长 ...

  10. 基于直接缓冲区和非直接缓冲区的javaIO文件操作

    基本概念: 1. 非直接缓冲区:  指的是通过jvm来缓存数据的,应用程序要读取本地数据要经历从本地磁盘到物理内存,然后copy到jvm中,然后再通过流的方式读取到应用程序中,写的操作正好与之相反. ...