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 相关文章推荐
ExtJs扩展之GroupPropertyGrid代码
Mar 05 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
Dec 21 Javascript
JS中三目运算符和if else的区别分析与示例
Nov 21 Javascript
Bootstrap每天必学之下拉菜单
Nov 25 Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
Jan 08 Javascript
基于Bootstrap实现城市三级联动
Nov 23 Javascript
JS遍历DOM文档树的方法实例详解
Apr 03 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
Sep 18 Javascript
vue webpack开发访问后台接口全局配置的方法
Sep 18 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
Nov 30 Javascript
JS实现头条新闻的经典轮播图效果示例
Jan 30 Javascript
微信小程序class封装http代码实例
Aug 24 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
雄兵连:天使彦天使彦为爱折翼,彦和炙心同时念动的誓言!
2020/03/02 国漫
curl和libcurl的区别简介
2015/07/01 PHP
javascript 面向对象编程 function也是类
2009/09/17 Javascript
jQuery 渐变下拉菜单
2009/12/15 Javascript
jquery复选框全选/取消示例
2013/12/30 Javascript
我用的一些Node.js开发工具、开发包、框架等总结
2014/09/25 Javascript
javascript的tab切换原理与效果实现方法
2015/01/10 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
jquery简单插件制作(fn.extend)完整实例
2016/05/24 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
jQuery在header中设置请求信息的方法
2017/03/06 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
微信小程序实现导航栏选项卡效果
2020/06/19 Javascript
详解使用React制作一个模态框
2019/03/14 Javascript
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
小程序实现长按保存图片的方法
2019/12/31 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
[01:54]TI珍贵瞬间系列(五):压力
2020/08/29 DOTA
Python实现大文件排序的方法
2015/07/10 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
python3实现小球转动抽奖小游戏
2020/04/15 Python
python实现文件的备份流程详解
2019/06/18 Python
Django数据结果集序列化并展示实现过程
2020/04/22 Python
Python暴力破解Mysql数据的示例
2020/11/09 Python
CSS3实现水平居中、垂直居中、水平垂直居中的实例代码
2020/02/27 HTML / CSS
草莓网化妆品加拿大网站:Strawberrynet Canada
2016/09/20 全球购物
机械化及自动化毕业生的自我评价分享
2013/11/06 职场文书
大学生职业规划前言模板
2013/12/27 职场文书
护士自我评价范文
2014/01/25 职场文书
环保建议书作文
2014/03/12 职场文书
人民调解员培训方案
2014/06/05 职场文书
高校教师个人工作总结2014
2014/12/17 职场文书
华清池导游词
2015/02/02 职场文书
Go并发4种方法简明讲解
2022/04/06 Golang
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL