详解.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 相关文章推荐
[JSF]使用DataModel处理表行事件的实例代码
Aug 05 Javascript
在Node.js中实现文件复制的方法和实例
Jun 05 Javascript
前端必备神器 Snap.svg 弹动效果
Nov 10 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
Aug 13 Javascript
jquery中checkbox使用方法简单实例演示
Nov 24 Javascript
javascript bom是什么及bom和dom的区别
Nov 26 Javascript
jQuery中设置form表单中action值的实现方法
May 25 Javascript
Boostrap实现的登录界面实例代码
Oct 09 Javascript
webpack+vue中使用别名路径引用静态图片地址
Nov 20 Javascript
react-router browserHistory刷新页面404问题解决方法
Dec 29 Javascript
详解如何使用webpack打包JS
Jun 21 Javascript
Vue Mint UI mt-swipe的使用方式
Jun 05 Vue.js
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 中英文语言转换类代码
2011/08/11 PHP
phpStudy访问速度慢和启动失败的解决办法
2015/11/19 PHP
slice函数的用法 之不错的应用
2006/12/29 Javascript
在Ajax中使用Flash实现跨域数据读取的实现方法
2010/12/02 Javascript
javascript的函数、创建对象、封装、属性和方法、继承
2011/03/10 Javascript
JavaScript实现表格排序方法
2013/06/14 Javascript
页面加载完毕后滚动条自动滚动一定位置
2014/02/20 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
2016/07/01 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
2016/11/09 Javascript
jquery ui sortable拖拽后保存位置
2017/04/27 jQuery
jQuery常用选择器详解
2017/07/17 jQuery
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
2020/03/23 Javascript
vue实现图书管理系统
2020/12/29 Vue.js
python正则表达式re模块详解
2014/06/25 Python
Python实现的HTTP并发测试完整示例
2020/04/23 Python
python snownlp情感分析简易demo(分享)
2017/06/04 Python
python自动查询12306余票并发送邮箱提醒脚本
2018/05/21 Python
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
python2.7的flask框架之引用js&amp;css等静态文件的实现方法
2019/08/22 Python
python3实现微型的web服务器
2019/09/03 Python
python绘制无向图度分布曲线示例
2019/11/22 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
解决python便携版无法直接运行py文件的问题
2020/09/01 Python
HTML5中的Scoped属性使用实例
2014/04/23 HTML / CSS
优秀幼教自荐信
2014/02/03 职场文书
学生个人自我鉴定范文
2014/03/28 职场文书
年终考核实施方案
2014/05/26 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
死亡证明书样本说明
2014/10/18 职场文书
单位租房协议书范本
2014/12/04 职场文书
关于清明节的演讲稿2015
2015/03/18 职场文书
名人传读书笔记
2015/06/26 职场文书