详解.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 相关文章推荐
Javascript miscellanea -display data real time, using window.status
Jan 09 Javascript
JS类库Bindows1.3中的内存释放方式分析
Mar 08 Javascript
JavaScript Perfection kill 测试及答案
Mar 23 Javascript
JS 事件绑定函数代码
Apr 28 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
Jan 11 Javascript
全面解析Bootstrap表单使用方法(表单控件)
Nov 24 Javascript
jQuery模拟360浏览器切屏效果幻灯片(附demo源码下载)
Jan 29 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
Mar 30 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
Jan 05 Javascript
ztree简介_动力节点Java学院整理
Jul 19 Javascript
ES6中的Promise代码详解
Oct 09 Javascript
vue中的v-if和v-show的区别详解
Sep 01 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
收听短波不可能有声音清晰的品质吗
2021/03/01 无线电
php数组分页实现方法
2016/04/30 PHP
[原创]php正则删除html代码中class样式属性的方法
2017/05/24 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
2019/03/18 PHP
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
JS+css 图片自动缩放自适应大小
2013/08/08 Javascript
Javascript中判断变量是数组还是对象(array还是object)
2013/08/14 Javascript
angularJS结合canvas画图例子
2015/02/09 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
Node.js插件安装图文教程
2016/05/06 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
Vue自定义指令使用方法详解
2017/08/21 Javascript
代码整洁之道(重构)
2018/10/25 Javascript
新手入门带你学习JavaScript引擎运行原理
2019/06/24 Javascript
layUI的验证码功能及校验实例
2019/10/25 Javascript
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
javascript实现支付宝滑块验证码效果
2020/07/24 Javascript
Python的一些用法分享
2012/10/07 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
2018/01/02 Python
Python用for循环实现九九乘法表
2018/05/31 Python
Flask配置Cors跨域的实现
2019/07/12 Python
django中使用POST方法获取POST数据
2019/08/20 Python
如何在Python对Excel进行读取
2020/06/04 Python
用Python开发app后端有优势吗
2020/06/29 Python
Python 利用argparse模块实现脚本命令行参数解析
2020/12/28 Python
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
运行时异常与一般异常有何异同?
2014/01/05 面试题
高中数学教学反思
2014/01/30 职场文书
战略合作协议书范本
2014/04/18 职场文书
2014年国庆节演讲稿
2014/09/19 职场文书
社区领导班子四风问题原因分析及整改措施
2014/09/28 职场文书
离婚协议书怎么写的
2014/12/14 职场文书