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函数
Dec 22 Javascript
dwz 如何去掉ajaxloading具体代码
May 22 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
Aug 29 Javascript
jquery 判断滚动条到达了底部和顶端的方法
Apr 02 Javascript
ExtJS4如何给同一个formpanel不同的url
May 02 Javascript
JavaScript用Number方法实现string转int
May 13 Javascript
jQuery继承extend用法详解
Oct 10 Javascript
js实现微博发布小功能
Jan 12 Javascript
jQuery动态产生select option下拉列表
Mar 15 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
Dec 24 Javascript
vue-cli在 history模式下的配置详解
Nov 26 Javascript
JavaScript实现随机点名程序
Mar 25 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数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
PHP实现采集中国天气网未来7天天气
2014/10/15 PHP
PHP开发之用微信远程遥控服务器
2018/01/25 PHP
在php的yii2框架中整合hbase库的方法
2018/09/20 PHP
学习ExtJS accordion布局
2009/10/08 Javascript
jQuery实现公告文字左右滚动的实例代码
2013/10/29 Javascript
Seajs的学习笔记
2014/03/04 Javascript
Javascript与jQuery方法的隐藏与显示
2015/01/19 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
2015/09/15 Javascript
Node.js安装配置图文教程
2017/05/10 Javascript
解决JS外部文件中文注释出现乱码问题
2017/07/09 Javascript
webpack搭建vue 项目的步骤
2017/12/27 Javascript
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
js实现左右两侧浮动广告
2018/07/09 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
2018/09/14 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
2019/09/03 Javascript
微信小程序在text文本实现多种字体样式
2019/11/08 Javascript
vue+node 实现视频在线播放的实例代码
2020/10/19 Javascript
python中numpy的矩阵、多维数组的用法
2018/02/05 Python
利用Python将数值型特征进行离散化操作的方法
2018/11/06 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
2019/01/10 Python
python按比例随机切分数据的实现
2019/07/11 Python
python多线程实现TCP服务端
2019/09/03 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
全网最细 Python 格式化输出用法讲解(推荐)
2021/01/18 Python
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
Html5 canvas实现粒子时钟的示例代码
2018/09/06 HTML / CSS
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
酒店总经理工作职责
2013/12/13 职场文书
领导干部民主生活会自我剖析材料范文
2014/09/20 职场文书
办公室务虚会发言材料
2014/10/20 职场文书
爱情保证书
2015/01/17 职场文书
幼儿园家长工作总结2015
2015/04/25 职场文书
创业计划书之熟食店
2019/10/16 职场文书
《别在吃苦的年纪选择安逸》读后感3篇
2019/11/30 职场文书