vue写一个组件


Posted in Javascript onApril 09, 2018

写一个vue组件

我下面写的是以.vue结尾的单文件组件的写法,是基于webpack构建的项目。如果还不知道怎么用webpack构建一个vue的工程的,可以移步到vue-cli。

一个完整的vue组件会包括一下三个部分:

  1. template:模板
  2. js: 逻辑
  3. css : 样式

每个组件都有属于自己的模板,js和样式。如果将一个页面比喻成一间房子的话,组件就是房子里的客厅、卧室、厨房、厕所。如果把厨房单独拿出来的话,组件又可以是刀、油烟机...等等。就是说页面是由组件构成的,而组件也可以是组件构成的。这样就可以非常的灵活,耦合性也非常的低。

先来看看一个组件在不是.vue文件内的写法:

Vue.component('simple-counter', {
 template: '<div id="inputBox"><input type="text"></div>',
 data () {   // 数据
 return {
  counter: 0
 }
 },
 methods: {
 // 写点方法
 },
 created () {
 // 生命钩子
 },
 computed: {
 // 计算属性
 }
})

template是用来干嘛的呢?

<template>
 <div id="inputBox">
 <input type="text">
 </div>
</template>
<!--
template就是这个组件的html,也就是下面部分(vue-loader会将template标签下的内容解析出来):
-->
<div id="inputBox">
 <input type="text">
</div>
<!--
 对应原生写法的话,就是template内的dom字符串
-->

js部分

export default {
 data () {
 return {
  counter: 0
 }
 },
 methods: {
 // 方法
 },
 created () {
 // 生命钩子
 },
 computed: {
 // 计算属性
 }
}
// 在这里很明显js部分就是对应的原生写法内的非template部分了。
// export default这个是es6的模块写法,不懂的可以先去了解es6的模块化

css部分

<style lang="scss" scoped>
...样式
</style>

<!--这里的你可以使用scss(CSS扩展语言)只要安装"sass-loader"和"node-sass"这两个npm包就好了,vue-cli已经配好相关参数了。如果想使用less或其它css扩展语音,只要装好各自的编译包就好了。而scoped是让css的作用域只在该文件下。-->

引入

要怎么在其它组件引用该组件?

组件一(button.vue)

<template>
 <div class="button">
 <button @click="onClick">{{text}}</button>
 </div>
</template>
<script>
export default {
 props: ['text'],   // 获取父组件的传值
 data () {
 return {

 }
 },
 methods: {
 onClick () {
  console.log('点击了子组件')
 }
 }
}
</script>
<style lang="scss" scoped>
.button {
 button {
 width: 100px;
 }
}
</style>

组件二(box.vue)

<template>
 <div class="box">
 <v-button :text="text"></v-button>    <!--使用组件并传值(text)-->
 </div>
</template>
<script>
import Button from './button.vue'  // 引入子组件
export default {
 components: {
 'v-button': Button
 },
 data () {
 return {
  text: '按键的name'
 }
 },
 methods: {

 }
}
</script>

总结

以上所述是小编给大家介绍的vue组写一个组件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
brook javascript框架介绍
Oct 10 Javascript
JQuery对id中含有特殊字符的转义处理示例
Sep 06 Javascript
将input file的选择的文件清空的两种解决方案
Oct 21 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
Jul 29 Javascript
AngularJS入门教程之学习环境搭建
Dec 06 Javascript
Bootstrap3.0学习教程之JS折叠插件
May 27 Javascript
vue2.0构建单页应用最佳实战
Apr 01 Javascript
javascript面向对象三大特征之继承实例详解
Jul 24 Javascript
Vue 的双向绑定原理与用法揭秘
May 06 Javascript
js+audio实现音乐播放器
Sep 13 Javascript
vue组件是如何解析及渲染的?
Jan 13 Vue.js
js实现简单商品筛选功能
Feb 02 Javascript
Vue 中使用 CSS Modules优雅方法
Apr 09 #Javascript
JS中双击和单击事件冲突的解决方法
Apr 09 #Javascript
vue脚手架及vue-router基本使用
Apr 09 #Javascript
vue 设置proxyTable参数进行代理跨域
Apr 09 #Javascript
Angular入口组件(entry component)与声明式组件的区别详解
Apr 09 #Javascript
快速搭建vue2.0+boostrap项目的方法
Apr 09 #Javascript
webpack 模块热替换原理
Apr 09 #Javascript
You might like
php下统计用户在线时间的一种尝试
2010/08/26 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
2014/05/10 PHP
zend framework框架中url大小写问题解决方法
2014/08/19 PHP
PHP实现数组递归转义的方法
2014/08/28 PHP
PHP中数据类型转换的三种方式
2015/04/02 PHP
flash调用js中的方法,让js传递变量给flash的办法及思路
2013/08/07 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
javascript实现uploadify上传格式以及个数限制
2015/11/23 Javascript
jQuery解析json数据实例分析
2015/11/24 Javascript
JS中this上下文对象使用方式
2016/10/09 Javascript
jQuery EasyUI中的日期控件DateBox修改方法
2016/11/09 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
html5+CSS 实现禁止IOS长按复制粘贴功能
2016/12/28 Javascript
Vue2.0如何发布项目实战
2017/07/27 Javascript
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
vue实现新闻展示页的步骤详解
2019/04/11 Javascript
vue quill editor 使用富文本添加上传音频功能
2020/01/14 Javascript
vue-cli3项目打包后自动化部署到服务器的方法
2020/09/16 Javascript
[12:51]71泪洒现场!是DOTA2让经典重现
2014/03/24 DOTA
[04:52]2015国际邀请赛LGD战队晋级之路
2015/08/14 DOTA
python base64 decode incorrect padding错误解决方法
2015/01/08 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
将Python文件打包成.EXE可执行文件的方法
2019/08/11 Python
django创建超级用户过程解析
2019/09/18 Python
python编程进阶之异常处理用法实例分析
2020/02/21 Python
在html5的Canvas上绘制椭圆的几种方法总结
2013/01/07 HTML / CSS
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
英语系毕业生自荐信
2013/10/31 职场文书
纺织工程专业个人求职信范文
2014/01/27 职场文书
股权转让协议书
2014/04/12 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
2015年护士节慰问信
2015/03/23 职场文书
婚宴来宾致辞
2015/07/28 职场文书
纪检部部长竞选稿
2015/11/21 职场文书
小学家庭教育心得体会
2016/01/14 职场文书