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 相关文章推荐
ajax java 实现自动完成功能
Dec 19 Javascript
javascript的offset、client、scroll使用方法详解
Dec 25 Javascript
input:checkbox多选框实现单选效果跟radio一样
Jun 16 Javascript
微信小程序 wx.uploadFile无法上传解决办法
Dec 14 Javascript
Bootstrap CSS组件之导航(nav)
Dec 17 Javascript
Vue.Js中的$watch()方法总结
Mar 23 Javascript
Node.js对MongoDB数据库实现模糊查询的方法
May 03 Javascript
微信小程序图片自适应支持多图实例详解
Jun 21 Javascript
详解VUE 数组更新
Dec 16 Javascript
Vue插件之滑动验证码
Sep 21 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
Apr 15 Javascript
JavaScript 语句之常用 for 循环详解
Mar 29 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桌面中心(四) 数据显示
2007/03/11 PHP
逆序二维数组插入一元素的php代码
2012/06/08 PHP
php堆排序(heapsort)练习
2013/11/13 PHP
php数组生成html下拉列表的方法
2015/07/20 PHP
thinkPHP5框架中widget的功能与用法详解
2018/06/11 PHP
PHP设计模式之模板模式定义与用法详解
2018/12/20 PHP
浅谈javascript的数据类型检测
2010/07/10 Javascript
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
css结合js制作下拉菜单示例代码
2014/02/27 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
2015/03/13 Javascript
实例代码详解jquery.slides.js
2015/11/16 Javascript
artDialog+plupload实现多文件上传
2016/07/19 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
Angular排序实例详解
2017/06/28 Javascript
jQuery自动或手动图片切换效果
2017/10/11 jQuery
Angular4 ElementRef的应用
2018/02/26 Javascript
微信小程序block的使用教程
2018/04/01 Javascript
使用kbone解决Vue项目同时支持小程序问题
2019/11/08 Javascript
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
如何在VUE中使用vue-awesome-swiper
2021/01/04 Vue.js
python登陆asp网站页面的实现代码
2015/01/14 Python
Python基于回溯法子集树模板解决找零问题示例
2017/09/11 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
python实现字符串加密 生成唯一固定长度字符串
2019/03/22 Python
python二分法查找算法实现方法【递归与非递归】
2019/12/06 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
Python基于Tkinter编写crc校验工具
2020/05/06 Python
Bandier官网:奢侈、时尚前卫的健身服装首选目的地
2020/07/05 全球购物
幼儿教育感言
2014/02/05 职场文书
幼儿园中秋节活动方案
2014/02/06 职场文书
五好关工委申报材料
2014/05/31 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
小学主题班会教案
2015/08/17 职场文书
2019单位介绍信怎么写
2019/06/24 职场文书
java设计模式--七大原则详解
2021/07/21 Java/Android
解决ubuntu安装软件时,status-code=409报错的问题
2022/12/24 Servers