Vue | 25 工具 - 单文件组件

news/2024/7/9 23:57:49 标签: vue, frontend technology, framework

内容提要:

  1. 单文件组件的意义
  2. 关于新手和高级用户如何使用单文件组件的建议

介绍

在一些Vue项目中,全局组件将使用Vue.component定义,而后通过new Vue({ el: '#container' })在页面内找到一个容器元素。

这在小型到中型的项目中可以完美工作,JavaScript仅仅用于改善某些特定的视图,然而在一些复杂的项目中,或当你的前端完全通过JavaScript驱动,这些不利条件变得明显:

  • 全局定义强制每一组件使用唯一的名字
  • 字符串模板缺少语法高亮,并且多行HTML要求难看的斜杠
  • 没有CSS的支持意味着HTML和JavaScrip是模块化在组件中的,CSS被明显的忽略了。
  • 没有构建步骤限制我们去使用HTML和ES5 JavaScript,而不像Pug(以前叫Jade)和Babel那样的预处理程序

以上这些问题通过单文件组件被解决,一个.vue的扩展,可以使用像Webpack或Browserify这样的构建工具。

这里有一个文件例子,我们将调用Hello.vue:
hello.<a class=vue" />
现在我们能够获得:

  • 完整的语法高亮
  • CommonJS 模块
  • 组件作用域CSS

正如所承诺的,我们可以使用预处理程序来构建简洁但功能丰富的组件,比如Pug,Babel(with ES2015 modules)和Stylus。
hello.<a class=vue" />

这些特定的语言仅仅是一个例子。你可以很容易的使用Bublé,TypeScript,SCSS, PostCSS - 或无论什么其他预处理程序帮助你提高产能。如果你使用携带vue-loader的Webpack,它也会优先支持CSS模块。

怎么看待关注点分离呢?

首先需要注意的是关注点分离并不等于文件类型分离。在限定的UI开发中,我们发现相比于把代码库分成三个大的层次而后在交互起来,以组件的松耦合的方式分离他们再组合在一起更为合适。在一个组件里面,它的模板,逻辑和风格是天然耦合的,搭配他们实际上使组件更具有内聚性和可维护性。

即使你不喜欢单文件组件的思想,你仍然可以分离你的JavaScript和CSS在单独的文件,而后做热重载和预编译:

<! --  my-component.vue -->
<template>
	<div>This will be pre-compiled</div>
</template>
<script src="./my-component.js"></script>
<style src="./my-component.css"></style>

起步

例子沙箱

如果你想深入了解并开始使用单文件组件,请来CodeSandbox这里有一个简单的todo例子.

针对刚接触在JavaScript使用模块构建系统的用户

使用.vue组件,我们进入了一个高级JavaScript应用领域。那意为着需要学习使用一些工具(如果你还不知道的话):

  • Node Package Mannager(NPM):通过读第10章:起步指导:卸载全局包
  • 使用ES2015/16的现代化的JavaScript:读Babel的Learn 2015 Guide.你现在不必记住每一个特性,但你可以保留网页的链接以便回来查找。
    在你花一天的时间去深入了解这些资源之后。我们推荐Vue CLI3.跟着说明你可以很快开始一个使用vue组件的Vue项目,ES2015,Webpack和热重载!

对于高级用户

CLI为你处理了大多数工具配置,但也允许细微的自定义通过它自己的config options.

如果你更喜欢从头开始你的构建设置,你需要使用vue-loader手动构建你的webpack.去学习关于webpack本身,来官方文档 和Webpack Academy.


http://www.niftyadmin.cn/n/1035750.html

相关文章

物料移动(MIGO/MB01等)更新物料凭证信息出口(user exit)

物料移动过程中&#xff0c;点击保存或其他提交按钮之后&#xff0c;进行物料凭证信息表&#xff08;MSEG,MKPF&#xff09;的更新,在这个节点需要进行一些操作&#xff0c;需要找到相应的user exit&#xff0c;实际测试user exit&#xff1a;MB_CF001&#xff08;->EXIT_SA…

反射原理及动态代理模式用法

知识点整理反射代理模式静态代理动态代理反射 了解反射用法&#xff1a; 反射一 反射二 练习 public class Servant {private int a;private String str;public Servant() {}public Servant(String string,int _a) {}public int getA() {return a;}public void setA(int a) {…

Vue | 26 工具 - 单元测试

主要内容&#xff1a; 简单的断言写可测试的组件断言的异步更新 Vue CLI已经为单元测试构建了操作项&#xff0c;使用Jest或Mocha开箱即用。我们也提供了官方的单元测试库Vue Test Utils,为自定义配置提供了更为细节的指导。 简单的断言 你不必为了组件的可测试性提供任何特殊…

SAP ABAP收货或者货物移动(MIGO,MB11,MB1A)在保存时候的增强点

增强的BADI是&#xff1a;MB_DOCUMENT_BADI&#xff0c;特别要注意的是假如你是想在 点击保存按钮的时候根据生成的凭证号&#xff08;即表示这个增强点处凭证号已经生成&#xff09;&#xff0c;把某些数据更新到你的自建表的话&#xff0c;要用第二个方法MB_DOCUMENT_UPDATE,…

Vue | 27 工具 - TypeScript 支持

主要内容&#xff1a; JavaScript在官方的声明及推荐配置创建工程及编码的开发工具推荐基本用例演示基于类风格的Vue组件插件使用中的参数类型注释返回类型 Vue CLI提供了构建 TypeScript工具支持。在Vue的下一个主要版本&#xff08;3.x&#xff09;我们也计划更多的提供我们对…

android Timer TimerTask源码

知识点整理Timer1.Timer的使用2 Timer源码解析在jdk自带的库中,有两种技术可以实现定时任务。一种是使用Timer,另外一个则是ScheduledThreadPoolExecutor这篇先讲解TimerTimer 1.Timer的使用 private Timer timer new Timer();timer.scheduleAtFixedRate(new TimerTask() {O…

Vue | 28 工具 - 产品部署

主要内容&#xff1a; 打开生产模式的几种配置方式预编译模板提取组件CSS的方式追踪运行时错误 如果你使用Vue CLI以下大部分建议是默认可用的。如果你使用的是自定义的构建设置时&#xff0c;这章才是相关的。 打开生产模式 在开发阶段&#xff0c;Vue对于常见的错误和陷阱提…

Vue | 29 规模化 - 路由

官方路由 对于大多数单页面应用&#xff0c;推荐使用官方支持的vue-router library&#xff0c;对于更多的细节&#xff0c;查看vue-router的文档。 从零开始简单的路由 如果你仅仅需要一个非常简单的路由&#xff0c;但不需要包含一个完整功能的路由库&#xff0c;你可以像…