详解.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函数
Apr 09 Javascript
使用jquery实现放大镜效果
Sep 02 Javascript
js字符串完全替换函数分享
Dec 03 Javascript
AngularJS语法详解
Jan 23 Javascript
简介JavaScript中的unshift()方法的使用
Jun 09 Javascript
Vue源码学习之初始化模块init.js解析
Nov 02 Javascript
Vue组件之自定义事件的功能图解
Feb 01 Javascript
JS中利用FileReader实现上传图片前本地预览功能
Mar 02 Javascript
react中使用css的7中方式(最全总结)
Feb 11 Javascript
vue实现微信二次分享以及自定义分享的示例
Mar 20 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
Oct 31 Javascript
javascript实现贪吃蛇游戏(娱乐版)
Aug 17 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实现在线阅读PDF文件的方法
2015/06/23 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
2016/01/28 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
php微信开发之图片回复功能
2018/06/14 PHP
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
js实现单一html页面两套css切换代码
2013/04/11 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
javascript使用call调用微信API
2014/12/15 Javascript
百度地图API之本地搜索与范围搜索
2015/07/30 Javascript
详解JavaScript时间格式化
2015/12/23 Javascript
多种JQuery循环滚动文字图片效果代码
2020/06/23 Javascript
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
详解使用vue实现tab 切换操作
2017/07/03 Javascript
AngularJS 购物车全选/取消全选功能的实现方法
2017/08/14 Javascript
微信小程序开发animation心跳动画效果
2017/08/16 Javascript
用vscode开发vue应用的方法步骤
2019/05/06 Javascript
node.js 如何监视文件变化
2020/09/01 Javascript
Nest.js散列与加密实例详解
2021/02/24 Javascript
Python中利用函数装饰器实现备忘功能
2015/03/30 Python
Python httplib模块使用实例
2015/04/11 Python
Python3使用requests发闪存的方法
2016/05/11 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
python程序变成软件的实操方法
2019/06/24 Python
在Python中构建增广矩阵的实现方法
2019/07/01 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
Matplotlib中%matplotlib inline如何使用
2020/07/28 Python
乌克兰时尚鞋子和衣服购物网站:Born2be
2018/05/24 全球购物
施华洛世奇波兰官网:SWAROVSKI波兰
2019/06/18 全球购物
如何提高SQL Server的安全性
2016/07/25 面试题
店长助理岗位职责
2013/12/13 职场文书
企业标语大全
2014/07/01 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
英语感谢信范文
2015/01/20 职场文书
民事辩护词范文
2015/05/21 职场文书
简述python四种分词工具,盘点哪个更好用?
2021/04/13 Python