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基础篇
Nov 13 Javascript
jquery.ui.draggable中文文档(原文翻译)
Nov 15 Javascript
基于jquery实现三级下拉菜单
May 10 Javascript
JavaScript获取键盘按键的键码(参照表)
Jan 10 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
Jan 20 Javascript
jQuery中clone()函数实现表单中增加和减少输入项
May 13 jQuery
dropload.js插件下拉刷新和上拉加载使用详解
Oct 20 Javascript
Angular使用操作事件指令ng-click传多个参数示例
Mar 27 Javascript
vue全局组件与局部组件使用方法详解
Mar 29 Javascript
React Navigation 使用中遇到的问题小结
May 08 Javascript
详解js中Array的方法及技巧
Sep 12 Javascript
vue中使用mockjs配置和使用方式
Apr 06 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
雄兵连:第三季确定会出,不过时间未定,鹤熙是第三季的主角!
2020/03/13 国漫
php &amp;&amp; 逻辑与运算符使用说明
2010/03/04 PHP
php判断ip黑名单程序代码实例
2014/02/24 PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
2014/03/18 PHP
Codeigniter注册登录代码示例
2014/06/12 PHP
js获取提交的字符串的字节数
2009/02/09 Javascript
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
Jquery中获取iframe的代码
2011/01/11 Javascript
js split 的用法和定义 js split分割字符串成数组的实例代码
2012/05/13 Javascript
jquery方法+js一般方法+js面向对象方法实现拖拽效果
2012/08/30 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
2016/11/24 Javascript
在node中如何使用 ES6
2017/04/22 Javascript
微信小程序实现滑动删除效果
2017/05/19 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
详解Vue如何支持JSX语法
2017/11/10 Javascript
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
vue-content-loader内容加载器的使用方法
2018/08/05 Javascript
微信小程序中使用自定义图标(阿里icon)的方法
2018/08/20 Javascript
js中arguments对象的深入理解
2019/05/14 Javascript
[01:44]《为梦想出发》—联想杯DOTA2完美世界全国高校联赛
2015/09/30 DOTA
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
Python中单例模式总结
2018/02/20 Python
python sklearn常用分类算法模型的调用
2019/10/16 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
2019/12/10 Python
Python基于xlutils修改表格内容过程解析
2020/07/28 Python
浅析Python 字符编码与文件处理
2020/09/24 Python
Python Selenium库的基本使用教程
2021/01/04 Python
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
儿媳婚宴答谢词
2014/01/14 职场文书
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
租车协议书范本2014
2014/11/17 职场文书
音乐剧猫观后感
2015/06/04 职场文书
2019各种承诺书范文
2019/06/24 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python