详解.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对象的property和prototype是这样一种关系
Mar 24 Javascript
csdn 博客中实现运行代码功能实现
Aug 29 Javascript
基于jQuery的动态表格插件
Mar 28 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
Jan 23 Javascript
JS+CSS实现DIV层的展开、收缩效果
Jan 28 Javascript
利用js定义一个导航条菜单
Mar 14 Javascript
JavaScript数组去重的多种方法(四种)
Sep 19 Javascript
详解Vue.js中.native修饰符
Apr 24 Javascript
谈谈IntersectionObserver懒加载的具体使用
Oct 15 Javascript
解决$store.getters调用不执行的问题
Nov 08 Javascript
jquery选择器和属性对象的操作实例分析
Jan 10 jQuery
node.js如何根据URL返回指定的图片详解
Oct 21 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生成静态页面详解
2006/11/19 PHP
PHP 数据库树的遍历方法
2009/02/06 PHP
PHP处理Oracle的CLOB实例
2014/11/03 PHP
php动态生成缩略图并输出显示的方法
2015/04/20 PHP
PHP数学运算与数据处理实例分析
2016/04/01 PHP
PHP Redis扩展无法加载的问题解决方法
2019/08/22 PHP
javascript iframe中打开文件,并检测iframe存在否
2008/12/28 Javascript
Javascript 学习笔记 错误处理
2009/07/30 Javascript
js 分栏效果实现代码
2009/08/29 Javascript
javascript正则表达式中参数g(全局)的作用
2010/11/11 Javascript
javascript实现百度地图鼠标滑动事件显示、隐藏
2015/04/02 Javascript
你一定会收藏的Nodejs代码片段
2016/02/04 NodeJs
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
2016/06/13 Javascript
JavaScript实现无刷新上传预览图片功能
2017/08/02 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
nginx+vue.js实现前后端分离的示例代码
2018/02/12 Javascript
在vscode里使用.vue代码模板的方法
2018/04/28 Javascript
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
[14:57]DOTA2 HEROS教学视频教你分分钟做大人-幽鬼
2014/06/13 DOTA
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
python编程嵌套函数实例代码
2018/02/11 Python
在python中利用numpy求解多项式以及多项式拟合的方法
2019/07/03 Python
python机器学习库xgboost的使用
2020/01/20 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
为世界各地的女性设计和生产时尚服装:ROMWE
2016/09/17 全球购物
Avène雅漾美国官方网站:敏感肌肤护理专家
2016/10/24 全球购物
费用会计岗位职责
2014/01/01 职场文书
婚前协议书范本
2014/04/15 职场文书
公司采购主管岗位职责
2014/06/17 职场文书
房屋转让协议书
2014/10/18 职场文书
2014年度工作总结报告
2014/12/15 职场文书
出纳岗位职责
2015/01/31 职场文书
2015大学自主招生自荐信范文
2015/03/04 职场文书
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python
Java spring单点登录系统
2021/09/04 Java/Android