详解.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实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
Apr 27 Javascript
如何让页面加载完成后执行js
Jun 26 Javascript
js向上无缝滚动,网站公告效果 具体代码
Nov 18 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
May 16 Javascript
javascript跨域总结之window.name实现的跨域数据传输
Nov 01 Javascript
基于JavaScript实现购物网站商品放大镜效果
Sep 06 Javascript
Bootstrap学习笔记之环境配置(1)
Dec 07 Javascript
jquery实现下拉框多选方法介绍
Jan 03 Javascript
jQuery中map函数的两种方式
Apr 07 jQuery
Three.js利用顶点绘制立方体的方法详解
Sep 27 Javascript
js canvas画布实现高斯模糊效果
Nov 27 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
Feb 10 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输出表格的实现代码(修正版)
2010/12/29 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
FireFox中textNode分片的问题
2007/04/10 Javascript
JavaScript 异步调用框架 (Part 2 - 用例设计)
2009/08/03 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
js文件中直接alert()中文出来的是乱码的解决方法
2016/11/01 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
基于Two.js实现星球环绕动画效果的示例
2017/11/06 Javascript
基于openlayers4实现点的扩散效果
2020/08/17 Javascript
Angularjs实现多图片上传预览功能
2018/07/18 Javascript
对Vue2 自定义全局指令Vue.directive和指令的生命周期介绍
2018/08/30 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
JavaScript中的ES6 Proxy的具体使用
2019/06/16 Javascript
JavaScript实现图片轮播特效
2019/10/23 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
python+pyqt5实现24点小游戏
2019/01/24 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
2019/02/13 Python
python写日志文件操作类与应用示例
2019/07/01 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
通往英国高街的商店橱窗:Down Your High Street
2020/07/19 全球购物
员工拓展培训方案
2014/02/15 职场文书
校园联欢晚会主持词
2014/03/17 职场文书
贺卡寄语大全
2014/04/11 职场文书
体育活动总结
2015/02/04 职场文书
2016年暑假家长对孩子评语
2015/12/01 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
区域销售大会开幕词
2016/03/04 职场文书
Python基本的内置数据类型及使用方法
2022/04/13 Python