详解.vue文件解析的实现


Posted in Javascript onJune 11, 2018

vue单文件

vue是现今非常流行的框架之一,整体给人的感觉就是优雅,小巧,最近开始学习着使用该框架做一些项目,学习,当然是从实践开始,在浏览了一遍官方文档之后,便开始用vue-cli脚手架来快速搭建一个vue项目,从实践中快速学习。在看了一遍项目文件结构后,对于.vue结尾的单文件却是有很多不解的地方,具体碰到的问题如下:

什么是<template/>标签

template是html5的一个新元素,主要用于保存客户端中的内容,表现为浏览器解析该内容但不渲染出来,可以将一个模板视为正在被存储以供随后在文档中使用的一个内容片段。

关于单文件组件

vue的单文件相当于一个页面中的组件,包含了关于该组件的html-css-js文件集合,这么做的目的有利于项目的管理和整合,官方说法是有构建步骤。

在<template/>标签下只能有一个子节点元素,如果写多个如<div/>这样的标签则会报错,如下所示

<template>
 <div></div>
 <div></div>
</template>

//run --> throw error
-Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead.

.vue文件可包含html-css-js,webpack自动打包成三个文件?

在.vue文件中,dom结构可以写在<template/>标签下,而针对该dom结构的样式文件则作为<template/>标签的兄弟元素<style/>存在,同样的控制该dom结构的脚本程序写在另一个兄弟元素<script/>之中,这样一来,每个组件自己对应的结构样式都在同一个文件之中,便不会与其它的组件搞混了。

 详解.vue文件解析的实现

官方hello.vue实例

style标签有哪些属性?分别是什么意思?

<style/>标签包含scoped和module属性,分别表示css作用域和css模块,一般会写上scoped属性,表示样式仅对当前组件以及其子组件的模板部分生效

script标签中的export default是什么意思?

可以从全文仅有的一张图中看到,<script/>标签下第一行代码是export default {……},这是ES6新增的模块部分的语法,采用模块的方式,每个文件都自成一个模块,采用export和import来暴露和引用接口。一个文件或模块中,export 和 import可以有多个,但export default只能有一个,使用该命令之后别的模块引用时就可以不需要知道所要加载的模块变量名

export default下可以写哪些东西?

可以写很多东西,包括变量和方法,对象等,只要是想作为开放的接口都可以写,在.vue文件中一般写上data() {}以及method等,data指的是在该组件中定义的模板数据,而如果你对<template/>中的元素绑定了点击方法,如<button @click="login">,则可如下所示:

<script>
export default {
 name: 'hello',
 data () {
 return {
  msg: 'Welcome to Your Vue.js App'
 }
 },
 methods: {
   login: function() {
    console.log(this.username,this.password);
   }
  }
}
</script>

刚刚接触vue不久,相信学习最好的方法便是以战养战,不懂的一步步去弄懂相信会很有意思,如果上面出现一些错误希望能有人指出来,谢谢~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用js控制组织结构图可以任意拖拽到指定位置
Jan 17 Javascript
解决jquery插件冲突的问题
Jan 23 Javascript
js格式化金额可选是否带千分位以及保留精度
Jan 28 Javascript
jquery实现的网页自动播放声音
Apr 30 Javascript
JS实现OCX控件的事件响应示例
Sep 17 Javascript
js模糊查询实例分享
Dec 26 Javascript
bootstrap是什么_动力节点Java学院整理
Jul 14 Javascript
vue实现商城上货组件简易版
Nov 27 Javascript
详解一个基于react+webpack的多页面应用配置
Jan 21 Javascript
JS co 函数库的含义和用法实例总结
Apr 08 Javascript
JavaScript判断数据类型有几种方法及区别介绍
Sep 02 Javascript
浅谈JSON5解决了JSON的两大痛点
Dec 14 Javascript
vue filters的使用详解
Jun 11 #Javascript
Vue组件全局注册实现警告框的实例详解
Jun 11 #Javascript
jQuery实现的页面详情展开收起功能示例
Jun 11 #jQuery
Node.js中的cluster模块深入解读
Jun 11 #Javascript
详解vue-router 初始化时做了什么
Jun 11 #Javascript
node中间层实现文件上传功能
Jun 11 #Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
Jun 11 #Javascript
You might like
php实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
支持中文的php加密解密类代码
2011/11/27 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
2020/12/10 PHP
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
不用MOUSEMOVE也能滑动啊
2007/05/23 Javascript
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
Javascript判断对象是否相等实现代码
2013/03/18 Javascript
多种方式实现JS调用后台方法进行数据交互
2013/08/20 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
jquery Deferred 快速解决异步回调的问题
2016/04/05 Javascript
详解用原生JavaScript实现jQuery的某些简单功能
2016/12/19 Javascript
JavaScript中重名的函数与对象示例详析
2017/09/28 Javascript
基于vue2.0实现简单轮播图
2017/11/27 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
说说node中的可读流和可写流的区别
2018/06/01 Javascript
深入理解react 组件类型及使用场景
2019/03/07 Javascript
微信小程序之左右布局的实现代码
2019/12/13 Javascript
详解vue高级特性
2020/06/09 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
python常见排序算法基础教程
2017/04/13 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
Python向excel中写入数据的方法
2019/05/05 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
在自动化中用python实现键盘操作的方法详解
2019/07/19 Python
Python的条件锁与事件共享详解
2019/09/12 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
pyspark给dataframe增加新的一列的实现示例
2020/04/24 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
工程招投标邀请书
2014/01/26 职场文书
银行贷款承诺书
2014/03/29 职场文书
QQ空间主人寄语大全
2014/04/12 职场文书
商场客服专员岗位职责
2014/06/13 职场文书
酒店人事专员岗位职责
2015/04/07 职场文书
热爱劳动主题班会
2015/08/14 职场文书
2016党员发展对象培训心得体会
2016/01/08 职场文书
分析Java中Map的遍历性能问题
2021/06/26 Java/Android