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 相关文章推荐
用jquery设置按钮的disabled属性的实现代码
Nov 28 Javascript
Checbox的操作含已选、未选及判断代码
Nov 07 Javascript
JavaScript 32位整型无符号操作示例
Dec 08 Javascript
js 通用订单代码
Dec 23 Javascript
自定义刻度jQuery进度条及插件
Sep 02 Javascript
js实现的Easy Tabs选项卡用法实例
Sep 06 Javascript
jQuery+PHP星级评分实现方法
Oct 02 Javascript
跟我学习javascript的异步脚本加载
Nov 20 Javascript
获取阴历(农历)和当前日期的js代码
Feb 15 Javascript
JavaScript实现相册弹窗功能(zepto.js)
Jun 21 Javascript
webpack学习笔记之优化缓存、合并、懒加载
Aug 24 Javascript
详解vue.js数据传递以及数据分发slot
Jan 20 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
FCKeditor的安装(PHP)
2007/01/13 PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
2011/06/10 PHP
PHP 面向对象详解
2012/09/13 PHP
php使HTML标签自动补全闭合函数代码
2012/10/04 PHP
yii框架builder、update、delete使用方法
2014/04/30 PHP
PHP实现根据密码长度显示安全条
2017/07/04 PHP
php微信公众号开发之快递查询
2018/10/20 PHP
php原生数据库分页的代码实例
2019/02/18 PHP
PHP实现简单登录界面
2019/10/23 PHP
javascript实现的动态文字变换
2007/07/28 Javascript
表格 隔行换色升级版
2009/11/07 Javascript
js 浏览器事件介绍
2012/03/30 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
18个非常棒的jQuery代码片段
2015/11/02 Javascript
详细分析Javascript中创建对象的四种方式
2016/08/17 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
jquery 手势密码插件
2017/03/17 Javascript
详解jQuery中关于Ajax的几个常用的函数
2017/07/17 jQuery
在vue中通过axios异步使用echarts的方法
2018/01/13 Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
2018/02/03 Javascript
Python 自动安装 Rising 杀毒软件
2009/04/24 Python
python多线程http下载实现示例
2013/12/30 Python
python如何为创建大量实例节省内存
2018/03/20 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
Python FtpLib模块应用操作详解
2019/12/12 Python
详解HTML5中垂直上下居中的解决方案
2017/12/20 HTML / CSS
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
应聘面试自我评价
2014/01/24 职场文书
个人遵守党的政治纪律情况对照检查材料思想汇报
2014/09/25 职场文书
后勤个人工作总结
2015/02/28 职场文书
钢琴师观后感
2015/06/12 职场文书
竞聘演讲报告:基本写作有哪些?附开头范文
2019/10/16 职场文书
利用Python实现翻译HTML中的文本字符串
2022/06/21 Python