一、vue组件命名:

组件有好几种命名方式, 可以使用 component-vue (短横线分隔命名)、componentVue  (驼峰式命名) 或ComponentVue  (单词首字母)

因为html对大小写不敏感, 所以在调用的时候驼峰命名的都要写成短线分割形式:

以上三种都要写成小写短线这种形式:

<component-vue></component-vue>

在使用props传值的时候也是这样

Vue.component('blogPost', {
props: ['postTitle'],
template: '<h3>{{ postTitle }}</h3>'
})
<blogPost post-title="hello!"></blogPost>

一、vue传值:

1.父传子

父组件:

 <template>
<div>
<child :input-name="name"></child> //inputName就是要传的值
</div>
</template>
<script>
import child from './child' //引入子组件
export default {
components: {
child
},
data () {
return {
name: ''
}
}
}
</script>

子组件:

    <template>
<div>
子组件:
<span>{{inputName}}</span>
</div>
</template>
<script>
export default {
props: {
inputName: String, //定义传值的类型为string
},
     props:['inputName'], //普通传值
}
</script>

2.子传父: 子传父需要通过事件来实现, 再用 this.$emit 传送事件和值

子组件

       <template>
<div>
子组件:
<!-- 定义一个子组件传值的方法 -->
<input type="button" value="点击触发" @click="childClick">
</div>
</template>
<script>
export default {
data () {
return {
}
},
methods: {
childClick () {
// 第一个参数就是父组件要调用的方法
// 第二个参数就是子组件要传的值
this.$emit('childByValue', this.childValue)
}
}
}
</script>

父组件:

<template>
<div>
<!-- 引入子组件 定义一个on的方法监听子组件的状态-->
<child v-on:childByValue="childByValue"></child>
</div>
</template>
<script>
import child from './child'
export default {
components: {
child
},
data () { },
methods: {
childByValue: function (childValue) {
//childValue, 就只你传过来的值
}
}
}
</script>

3.非父子组件传值: 非父子组件传值, 需要用到一个中转站, 这个中转站一般用bus.js, 其用法和子传父有点相似,

先创建一个bus, 在两个需要传值的文件引入, 在传值的一方用 bus.emit 传递载荷, 在接受的一方用bus.$on接受

bus.js: 创建一个空的vue实例:

import Vue from 'vue'
export default new Vue()

A组件:

<template>
<div>
<input type="button" value="点击触发" @click="elementByValue">
</div>
</template>
<script>
// 引入公共的bug,来做为中间传达的工具
import Bus from './bus.js'
export default {
data () {
},
methods: {
elementByValue: function () {
Bus.$emit('val', this.elementValue)
}
}
}
</script>

B组件:

<template>
<div>
<input type="button">
<span>{{name}}</span>
</div>
</template>
<script>
import Bus from './bus.js'
export default {
data () {
return {
}
},
mounted: function () {
// 用$on事件来接收参数
Bus.$on('val', (data) => {
//data就是值
})
},
}
</script>

  

最新文章

  1. 【USACO 3.2】Stringsobits (dp)
  2. iOS路径沙盒文件管理(转载)
  3. Linux基础-常用命令
  4. 关于openssl几个API的一点小收获
  5. jeechart
  6. Sublime Text 3初阶
  7. Wcf for wp8 上传图片到服务器,将图片名字插入数据库字段(五)
  8. 5个让人激动的Java项目
  9. Sruts2文件上传的ContentType的取值列表
  10. hudson配置教程
  11. 微信小程序入门学习
  12. Vue事件处理
  13. hdu 4117 -- GRE Words (AC自动机+线段树)
  14. Sublime Text2支持Vue语法高亮显示
  15. java jdk 8反编译工具JD-GUI、procyon-decompiler、luyten、crf下载使用简介
  16. 浅谈rest風格的接口开发
  17. C# Conversion Keywords
  18. 关于 java.toString() ,(String),String.valueOf的区别
  19. Ubuntu16.04系统美化、常用软件安装等,长期更新
  20. 提高Linux运维效率的30个命令行常用快捷键

热门文章

  1. Linux shell 下简单的进度条实现
  2. zabbix 磁盘自动发现脚本
  3. 接口自动化request库入门
  4. 阿里菜鸟知识储备之二——git工具学习
  5. DjangoRESTFrameWork中的视图
  6. Oracle诊断:drop table失败[转]
  7. HashMap原理及简单实现
  8. (转)openssl 命令: openssl req 命令详解
  9. 嵌入式Linux之NFS配置
  10. 将项目发布到neuxs私服