详解.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 相关文章推荐
突发奇想的一个jquery插件
Nov 19 Javascript
javascript中String类的subString()方法和slice()方法
May 24 Javascript
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
Dec 20 Javascript
基于jquery的放大镜效果
May 30 Javascript
基于SVG的web页面图形绘制API介绍及编程演示
Jun 28 Javascript
PHP结合jQuery实现的评论顶、踩功能
Jul 22 Javascript
Bootstrap每天必学之面板
Nov 30 Javascript
深入理解js数组的sort排序
May 28 Javascript
Bootstrap的Refresh Icon也spin起来
Jul 13 Javascript
Javascript Function.prototype.bind详细分析
Dec 29 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
Sep 05 Javascript
es5 类与es6中class的区别小结
Nov 09 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调用mysql存储过程实例分析
2014/12/29 PHP
简单理解PHP的面向对象编程方式
2016/05/17 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
2019/10/18 PHP
BOOM vs RR BO3 第二场2.13
2021/03/10 DOTA
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
用jquery实现点击栏目背景色改变
2012/12/10 Javascript
JavaScript获取当前页面上的指定对象示例代码
2014/02/28 Javascript
Javascript动态引用CSS文件的2种方法介绍
2014/06/06 Javascript
基于Jquery代码实现手风琴菜单
2015/11/19 Javascript
基于javascript实现图片左右切换效果
2016/01/25 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
jquery插入兄弟节点的操作方法
2016/12/07 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
2016/12/22 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
2017/01/11 Javascript
详解ES6 Promise对象then方法链式调用
2018/10/20 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
vue实现滑动超出指定距离回顶部功能
2019/07/31 Javascript
功能完善的小程序日历组件的实现
2020/03/31 Javascript
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
[04:28]DOTA2亚洲邀请赛小组赛第五日 TOP10精彩集锦
2015/02/03 DOTA
使用python开发vim插件及心得分享
2014/11/04 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
Python中最大最小赋值小技巧(分享)
2017/12/23 Python
使用python编写监听端
2018/04/12 Python
python中时间模块的基本使用教程
2019/05/14 Python
Django实现celery定时任务过程解析
2020/04/21 Python
文件上传服务器-jupyter 中python解压及压缩方式
2020/04/22 Python
python实现扫雷小游戏
2020/04/24 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
lookfantastic荷兰:在线购买奢华护肤、护发和化妆品
2018/11/27 全球购物
街头时尚在线:JESSICABUURMAN
2019/06/16 全球购物
秘书英文求职信范文
2014/01/31 职场文书
2015年六一儿童节活动方案
2015/05/05 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers