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 相关文章推荐
GridView中获取被点击行中的DropDownList和TextBox中的值
Jul 18 Javascript
js获取系统的根路径实现介绍
Sep 08 Javascript
js每隔5分钟执行一次ajax请求的实现方法
Nov 27 Javascript
input禁止键盘及中文输入,但可以点击
Feb 13 Javascript
jQuery使用height()获取高度需要注意的地方
Dec 13 Javascript
基于javascript代码实现通过点击图片显示原图片
Nov 29 Javascript
jQuery计算文本框字数及限制文本框字数的方法
Mar 01 Javascript
javascript实现列表切换效果
May 02 Javascript
Node.js检测端口(port)是否被占用的简单示例
Sep 29 Javascript
纯javascript版日历控件
Nov 24 Javascript
自定义PC微信扫码登录样式写法
Dec 12 Javascript
微信小程序实现两个页面传值的方法分析
Dec 11 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 Static关键字实用方法
2010/06/04 PHP
在PHP中PDO解决中文乱码问题的一些补充
2010/09/06 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
2014/09/22 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
PHP-FPM运行状态的实时查看及监控详解
2016/11/18 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
一个JS翻页效果
2007/07/23 Javascript
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
页面装载js及性能分析方法介绍
2014/03/21 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
详解Jquery的事件操作和文档操作
2016/12/19 Javascript
微信小程序 this和that详解及简单实例
2017/02/13 Javascript
详解nodejs微信公众号开发——2.自动回复
2017/04/10 NodeJs
vue2.0多条件搜索组件使用详解
2020/03/26 Javascript
JavaScript中为事件指定处理程序的五种方式分析
2018/07/27 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
从0搭建vue-cli4脚手架
2020/06/17 Javascript
小程序点餐界面添加购物车左右摆动动画
2020/09/23 Javascript
vue组件中节流函数的失效的原因和解决方法
2020/12/02 Vue.js
Python文件夹与文件的操作实现代码
2014/07/13 Python
python中实现定制类的特殊方法总结
2014/09/28 Python
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
Python中列表和元组的使用方法和区别详解
2020/12/30 Python
python paramiko模块学习分享
2017/08/23 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
python 负数取模运算实例
2020/06/03 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
2020/07/23 Python
联想韩国官网:Lenovo Korea
2018/05/10 全球购物
香港网上花店:FlowerAdvisor香港
2019/05/30 全球购物
Windows和Linux动态库应用异同
2016/04/17 面试题
Why do we need Unit test
2013/01/03 面试题
个人自我评价和职业目标
2014/01/24 职场文书
大二法英学生职业生涯规划范文
2014/02/27 职场文书
校运动会广播稿300字
2014/10/07 职场文书
Python - 10行代码集2000张美女图
2021/05/23 Python