详解.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拓展DOM操作 prependChild insertAfert
Nov 17 Javascript
基于jquery的可多选的下拉列表框
Jul 20 Javascript
JQuery select控件的相关操作实现代码
Sep 14 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
Jun 16 Javascript
JS跨域问题详解
Nov 25 Javascript
jQuery实现自动切换播放的经典滑动门效果
Sep 12 Javascript
基于jQuery实现页面搜索功能
Mar 26 Javascript
深入理解Vuex 模块化(module)
Sep 26 Javascript
vue项目优化之通过keep-alive数据缓存的方法
Dec 11 Javascript
JS生成随机打乱数组的方法示例
Dec 23 Javascript
深入理解requireJS-实现一个简单的模块加载器
Jan 15 Javascript
解决vue 子组件修改父组件传来的props值报错问题
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 全局变量范围分析
2009/08/07 PHP
PHP 面向对象实现代码
2009/11/11 PHP
Memcache 在PHP中的使用技巧
2010/02/08 PHP
php使用ICQ网关发送手机短信
2013/10/30 PHP
PHP中的事务使用实例
2015/05/26 PHP
php mongodb操作类 带几个简单的例子
2016/08/25 PHP
javascript笔试题目附答案@20081025_jb51.net
2008/10/26 Javascript
javaScript对文字按照拼音排序实现代码
2013/12/27 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
2015/02/27 Javascript
jQuery仿Flash上下翻动的中英文导航菜单实例
2015/03/10 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
2015/08/17 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
2016/10/30 Javascript
localStorage的黑科技-js和css缓存机制
2017/02/06 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
Vue项目history模式下微信分享爬坑总结
2019/03/29 Javascript
JS实现的自定义map方法示例
2019/05/17 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
详解在Python的Django框架中创建模板库的方法
2015/07/20 Python
Django实现快速分页的方法实例
2017/10/22 Python
python编写弹球游戏的实现代码
2018/03/12 Python
python实现数据写入excel表格
2018/03/25 Python
点球小游戏python脚本
2018/05/22 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
Python Socket编程之多线程聊天室
2018/07/28 Python
python获取引用对象的个数方式
2019/12/20 Python
python爬虫添加请求头代码实例
2019/12/28 Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
2020/03/23 Python
基于python爬取链家二手房信息代码示例
2020/10/21 Python
详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)
2020/11/16 HTML / CSS
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
巴西最大的玩具连锁店:Ri Happy
2020/06/17 全球购物
七一建党日演讲稿
2014/09/05 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
python中super()函数的理解与基本使用
2021/08/30 Python
Win11无法安装更新补丁KB3045316怎么办 附KB3045316补丁修复教程
2022/08/14 数码科技