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 相关文章推荐
js处理表格对table进行修饰
May 26 Javascript
jquery实现删除一个元素后面的所有元素功能
Dec 21 Javascript
理解Angular数据双向绑定
Jan 10 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
Jan 06 Javascript
jQuery实现 RadioButton做必选校验功能
Jun 15 jQuery
javascript 产生随机数的几种方法总结
Sep 26 Javascript
基于jQuery解决ios10以上版本缩放问题
Nov 03 jQuery
微信开发之企业付款到银行卡接口开发的示例代码
Sep 18 Javascript
vue无限轮播插件代码实例
May 10 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
Oct 16 jQuery
vue ajax 拦截原理与实现方法示例
Nov 29 Javascript
详谈Object.defineProperty 及实现数据双向绑定
Jul 18 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数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
浅析PHP递归函数返回值使用方法
2013/02/18 PHP
PHP导入导出Excel代码
2015/07/07 PHP
[原创]PHP实现SQL语句格式化功能的方法
2017/07/28 PHP
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
javascript 拖动表格行实现代码
2011/05/05 Javascript
js函数调用常用方法详解
2012/12/03 Javascript
THREE.JS入门教程(6)创建自己的全景图实现步骤
2013/01/25 Javascript
详解Jquery实现ready和bind事件
2016/04/14 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
angular中实现控制器之间传递参数的方式
2017/04/24 Javascript
nodejs利用ajax实现网页无刷新上传图片实例代码
2017/06/06 NodeJs
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
vue.js与element-ui实现菜单树形结构的解决方法
2018/04/21 Javascript
微信上传视频文件提示(推荐)
2018/11/22 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
深入webpack打包原理及loader和plugin的实现
2020/05/06 Javascript
[11:01]2014DOTA2西雅图邀请赛 冷冷带你探秘威斯汀
2014/07/08 DOTA
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
python 随机数生成的代码的详细分析
2011/05/15 Python
python中黄金分割法实现方法
2015/05/06 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
2017/04/27 Python
Python调用C# Com dll组件实战教程
2017/10/12 Python
Python3.6使用tesseract-ocr的正确方法
2018/10/17 Python
使用tensorflow显示pb模型的所有网络结点方式
2020/01/23 Python
Python3 读取Word文件方式
2020/02/13 Python
python,Java,JavaScript实现indexOf
2020/09/09 Python
HTML5 weui使用笔记
2019/11/21 HTML / CSS
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
员工考核管理制度
2014/02/02 职场文书
生产部厂长助理职位说明书
2014/03/03 职场文书
商业计算机应用专业自荐书
2014/06/09 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
利用For循环遍历Python字典的三种方法实例
2022/03/25 Python