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 标题的自动翻转实现代码
Oct 14 Javascript
js 火狐下取本地路径实现思路
Apr 02 Javascript
jQuery中选择器小问题(新人难免遇到)
Mar 31 Javascript
封装好的一个万能检测表单的方法
Jan 21 Javascript
关于JS中prototype的理解
Sep 07 Javascript
JavaScript设置、获取、清除单值和多值cookie的方法
Nov 17 Javascript
AngularJS自动表单验证
Feb 01 Javascript
ajax接收后台数据在html页面显示
Feb 19 Javascript
写一个Vue Popup组件
Feb 25 Javascript
基于 jQuery 实现键盘事件监听控件
Apr 04 jQuery
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
May 10 Javascript
Vue3如何理解ref toRef和toRefs的区别
Feb 18 Vue.js
基于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 无限级缓存的类的扩展
2009/03/16 PHP
php使用Cookie控制访问授权的方法
2015/01/21 PHP
PHP多文件上传类实例
2015/03/07 PHP
laravel5环境隐藏index.php后缀(apache)的方法
2019/10/12 PHP
Extjs学习笔记之四 工具栏和菜单
2010/01/07 Javascript
jQuery中map()方法用法实例
2015/01/06 Javascript
JS取得绝对路径的实现代码
2015/01/16 Javascript
js面向对象之公有、私有、静态属性和方法详解
2015/04/17 Javascript
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
JavaScript数组各种常见用法实例分析
2015/08/04 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
2016/05/17 Javascript
JS常用函数和常用技巧小结
2016/10/15 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
2017/06/30 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
vue实现与安卓、IOS交互的方法
2018/11/02 Javascript
vue element-ui之怎么封装一个自己的组件的详解
2019/05/20 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
python多线程扫描端口示例
2014/01/16 Python
mac安装scrapy并创建项目的实例讲解
2018/06/13 Python
python函数与方法的区别总结
2019/06/23 Python
图文详解Django使用Pycharm连接MySQL数据库
2019/08/09 Python
python使用requests.session模拟登录
2019/08/09 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
Pyspark读取parquet数据过程解析
2020/03/27 Python
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
Lululemon英国官网:加拿大瑜伽服装品牌
2019/01/14 全球购物
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
2015/10/13 面试题
护士自我鉴定
2013/10/23 职场文书
毕业自我评价范文
2013/11/17 职场文书
研修第一天随笔感言
2014/02/15 职场文书
银行柜员求职自荐书
2014/06/18 职场文书
法定代表人授权委托书范文
2014/09/22 职场文书
综治工作汇报材料
2014/10/27 职场文书
商场圣诞节活动总结
2015/05/06 职场文书