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 相关文章推荐
解析arp病毒背后利用的Javascript技术附解密方法
Aug 06 Javascript
js点击页面其它地方将某个显示的DIV隐藏
Jul 12 Javascript
JavaScript设计模式之策略模式实例
Oct 10 Javascript
js实现屏幕自适应局部代码分享
Jan 30 Javascript
浅谈JS原型对象和原型链
Mar 02 Javascript
Angular2实现组件交互的方法分析
Dec 19 Javascript
JS中获取 DOM 元素的绝对位置实例详解
Apr 23 Javascript
vue删除html内容的标签样式实例
Sep 13 Javascript
webpack 代码分离优化快速指北
May 18 Javascript
微信小程序实现分享商品海报功能
Sep 30 Javascript
js实现上传按钮并显示缩略图小轮子
May 04 Javascript
vue 动态创建组件的两种方法
Dec 31 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水印
2007/03/16 PHP
PHP实现MySQL更新记录的代码
2008/06/07 PHP
php中global和$GLOBALS[]的分析之一
2012/02/02 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
twig里使用js变量的方法
2016/02/05 PHP
PHP读MYSQL中文乱码的快速解决方法
2016/10/01 PHP
实现PHP搜索加分页
2016/10/12 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
Maps Javascript
2007/01/22 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
JavaScript获取Url里的参数
2014/12/18 Javascript
javascript使用prototype完成单继承
2014/12/24 Javascript
pace.js页面加载进度条插件
2015/09/29 Javascript
BootStrap的JS插件之轮播效果案例详解
2016/05/16 Javascript
JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码
2017/09/07 Javascript
JS文件中加载jquery.js的实例代码
2018/05/05 jQuery
使用layui定义一个模块并使用的例子
2019/09/14 Javascript
python with statement 进行文件操作指南
2014/08/22 Python
用pickle存储Python的原生对象方法
2017/04/28 Python
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
Python可迭代对象操作示例
2019/05/07 Python
python如何将多个PDF进行合并
2019/08/13 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
python中的unittest框架实例详解
2021/02/05 Python
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
AJAX应用和传统Web应用有什么不同
2013/08/24 面试题
工商管理实习自我鉴定
2013/09/28 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
百家讲坛观后感
2015/06/12 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python
Python初识逻辑与if语句及用法大全
2021/08/07 Python
PostgreSQL怎么创建分区表详解
2022/06/25 PostgreSQL