Vue单文件组件基础模板小结


Posted in Javascript onAugust 10, 2017

背景

相信大家在使用Vue开发项目时,基本都是以单文件组件的形式开发组件的,这种方式好处多多:

1.代码集中,便于开发、管理和维护

2.可复用性高,直接将vue文件拷贝到新项目中

我暂时就想到这两点,童鞋们可以在评论里帮我补充;因为有这么多优点,所以决定有必要将vue组件的常用配置项提炼出来,形成一个组件模板,方便日后项目开发复用

<template>
 <div>
  <h1>{{title}}</h1>
  <ChildComponents></ChildComponents>
 </div>
</template>
<script>
//子组件要提前引入,才可使用
import ChildComponents from './ChildComponents.vue'
//也可引入一些公共Js脚本或类库
import Cookie from '../lib/cookie.js'

//Js部分尽量采用ES6语法,webpack babel插件会转义兼容
export default {
 //组件私有数据(必须是function,而且要return对象类型)
 data () {
  return {
   title: '组件标题',
   firstName: '',
   lastName: '',
  }
 },
 //父组件传递过来的数据(两种方式声明:1.数组 2.对象)
 //数组方式
 props: ['age'],
 //对象方式
 /*props: {
  age: {
   type: Number,
   default: 0,
   required: true,
   validator: function (value) {
    return value >= 0
   }
  }
 }*/
 //计算属性
 computed: {
  fullName () {
   return this.firstName + this.lastName
  }
 },
 //监听
 watch: {
  title (preVal, newVal) {
    console.log(`改变之前的值:${preVal};改变之后的值:${newVal}`)
  }
 },
 //函数集,自己封装,便于开发使用
 methods: {
  getCurrentDate () {
   return new Date().toLocaleDateString()
  }
 },
 //生命周期钩子:实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用
 beforeCreated () {
  console.log('component before created')
 },
 //生命周期钩子:组件实例完成创建之后调用
 created () {
  console.log('component created')
 },
 //生命周期钩子:组件实例渲染完成时调用
 mounted () {
  console.log('component mounted')
 },
 //要用到哪些子组件(如果组件已是最小粒度,那么可省略该属性)
 components: {
  ChildComponents
 }
}
</script>
<style lang="scss" scoped>
/**使用scss编写样式,既可提高开发效率,也方便维护
* scoped省略后,该样式片段会应用到页面全局
* 支持import语法引入css文件
*/
@import "../base/reset.css";
div {
 h1 {
  color: #c23a3f;
 }
}

</style>

结语

以上组件模板中的配置不是最全的,但都是最常用的,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用javascript实现读取txt文档的脚本
Jul 20 Javascript
jQuery AJAX 调用WebService实现代码
Mar 24 Javascript
理解Javascript闭包
Nov 01 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
Dec 11 Javascript
一个JavaScript用逗号分割字符串实例
Sep 22 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
Mar 20 Javascript
AngularJs Javascript MVC 框架
Jun 20 Javascript
AngularJs bootstrap搭载前台框架——js控制部分
Sep 01 Javascript
JavaScript实现自定义媒体播放器方法介绍
Jan 03 Javascript
AngularJS中$http使用的简单介绍
Mar 17 Javascript
使用angular帮你实现拖拽的示例
Jul 05 Javascript
layui实现三级联动效果
Jul 26 Javascript
基于JavaScript实现淘宝商品广告效果
Aug 10 #Javascript
Vue数组更新及过滤排序功能
Aug 10 #Javascript
Webpack性能优化 DLL 用法详解
Aug 10 #Javascript
详解React Native网络请求fetch简单封装
Aug 10 #Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
Aug 10 #jQuery
JS对象与JSON互转换、New Function()、 forEach()、DOM事件流等js开发基础小结
Aug 10 #Javascript
jquery.uploadView 实现图片预览上传功能
Aug 10 #jQuery
You might like
PHP中空字符串介绍0、null、empty和false之间的关系
2012/09/25 PHP
PHP SESSION跨页面传递失败解决方案
2020/12/11 PHP
js识别不同浏览器基于userAgent做判断
2014/07/29 Javascript
JavaScript中的alert()函数使用技巧详解
2014/12/29 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
js+div+css下拉导航菜单完整代码分享
2016/12/28 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
node实现简单的反向代理服务器
2017/07/26 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
Angular @HostBinding()和@HostListener()用法
2018/03/05 Javascript
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
详解如何模拟实现node中的Events模块(通俗易懂版)
2019/04/15 Javascript
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
Python创建xml文件示例
2017/03/22 Python
Python 多线程实例详解
2017/03/25 Python
Python内置函数delattr的具体用法
2017/11/23 Python
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
使用pycharm设置控制台不换行的操作方法
2019/01/19 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
django 读取图片到页面实例
2020/03/27 Python
Python selenium键盘鼠标事件实现过程详解
2020/07/28 Python
乐天旅游台湾网站:Rakuten Travel TW
2017/06/01 全球购物
中医药大学毕业生自荐信
2013/11/08 职场文书
优秀党支部事迹材料
2014/01/14 职场文书
国培教师自我鉴定
2014/02/12 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
小学班主任评语大全
2014/04/23 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
消防验收申请报告
2015/05/15 职场文书
电影建国大业观后感
2015/06/01 职场文书
办公室日常管理制度
2015/08/04 职场文书
如何撰写促销方案?
2019/07/05 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书