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 相关文章推荐
表格单元格交错着色实现思路及代码
Apr 01 Javascript
JavaScript中String.prototype用法实例
May 20 Javascript
jQuery xml字符串的解析、读取及查找方法
Mar 01 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
May 28 Javascript
js清除浏览器缓存的几种方法
Mar 15 Javascript
如何快速解决JS或Jquery ajax异步跨域的问题
Jan 08 jQuery
对vue里函数的调用顺序介绍
Mar 17 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
Feb 22 Javascript
jquery操作select常见方法大全【7种情况】
May 28 jQuery
浅谈微信小程序列表埋点曝光指南
Oct 15 Javascript
浅谈JavaScript中的“!!”作用
Aug 03 Javascript
VUE异步更新DOM - 用$nextTick解决DOM视图的问题
Nov 06 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值mysql操作类
2016/06/29 PHP
tp5.1 实现setInc字段自动加1
2019/10/18 PHP
JavaScript中的私有成员
2006/09/18 Javascript
JS的IE和Firefox兼容性集锦
2006/12/11 Javascript
URI、URL和URN之间的区别与联系
2006/12/20 Javascript
JavaScript触发器详解
2007/03/10 Javascript
jquery获取input的value问题说明
2010/08/19 Javascript
JS字符串处理实例代码
2013/08/05 Javascript
Javascript实现滚动图片新闻的实例代码
2013/11/27 Javascript
jquery 提示信息显示后自动消失的具体实现
2013/12/18 Javascript
js Object2String方便查看js对象内容
2014/11/24 Javascript
jQuery类选择器用法实例
2014/12/23 Javascript
javascript实现简单的二级联动
2015/03/19 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
javascript中Date()函数在各浏览器中的显示效果
2015/06/18 Javascript
JS使用tofixed与round处理数据四舍五入的区别
2017/10/25 Javascript
详解Vue.js在页面加载时执行某个方法
2018/11/20 Javascript
JS Math对象与Math方法实例小结
2019/07/05 Javascript
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
JavaScript字符串处理常见操作方法小结
2019/11/15 Javascript
vue3.0 上手体验
2020/09/21 Javascript
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
详细介绍pandas的DataFrame的append方法使用
2019/07/31 Python
如何利用python web框架做文件流下载的实现示例
2020/06/02 Python
python中get和post有什么区别
2020/06/19 Python
Python如何实现后端自定义认证并实现多条件登陆
2020/06/22 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
2020/10/15 Python
HTML5 Canvas——用路径描画线条实例介绍
2013/06/09 HTML / CSS
科技开发中心办公室主任岗位责任制
2014/02/10 职场文书
军训口号
2014/06/13 职场文书
博士生专家推荐信
2014/09/26 职场文书
2015年小学中秋节活动总结
2015/03/23 职场文书
年终工作总结范文
2019/06/20 职场文书
导游词之山东八仙过海景区
2019/11/11 职场文书
导游词之青岛太清宫
2019/12/13 职场文书
优化Mysql查询的示例
2022/04/26 MySQL