vue组件传值,分为父子传值和非父子传值,父子传值又分为父传子和子传父。

  组件之间的传值,实现了数据的联动,是从操作Dom到操作数据一个跳转性的突破,在学习vue双向绑定原理之后,

这种观念就应该继续加强,可以大大提高应用开发的效率,方便用户使用,减轻数据库系统管理人员维护负担。

  我们实现简单的组件传值,做了张思维导图,其实就是语法上我们还不熟悉,我们需要的就是打好基础,熟悉语法。

  https://cn.vuejs.org/v2/guide/components-props.html是prop语法的介绍,老生常谈,官网语法很重要。

 <template>
<div class="hello">
<div class="son1"> <!-- {{mes}}--{{num}} -->
父对com1说:{{mes}} <button @click="toFather">子传父</button>
<button @click="sendDataToCom2">send to com2</button>
com1收到com2的回答{{mes5}}
</div> </div>
</template> <script>
export default {
name: 'HelloWorld',
props: ["mes"],
// props: {
// mes:String,
// num:Number
// },
data () {
return {
mes1:"我是com1,没办法,我学不会呀",
mes2:"弟弟,我学不会",
mes5:""
}
},
created () {
this.spead.$on("to-com1",(value)=>{
console.log(value,"-----")
this.mes5=value
})
},
methods: {
toFather(){
this.$emit("to-father", this.mes1)//发送
},
sendDataToCom2(){
this.spead.$emit("to-com2",this.mes2)
}
} }
</script> <!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
.son1{background: pink}
</style>

*:这是Com代码,props注释部分,是prop的不同语法

<template>
<div class="hello">
<div class="son2">
com1对com2说:{{mes3}}
<button @click="sendDataToCom1">send to com1</button>
</div> </div>
</template> <script>
export default {
name: 'HelloWorld',
data () {
return {
mes3:"",
mes4:"那你吃屎吧"
}
},
created () {
this.spead.$on("to-com2",(value)=>{
console.log(value,"=======")
this.mes3=value
})
},
methods: {
sendDataToCom1(){
this.spead.$emit("to-com1",this.mes4)
}
} }
</script> <!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
.son2{background: rgb(213, 255, 220)}
</style>

*:这是Com2代码

<template>
<div class="hello"> <Com1 :mes="message" @to-father="Com1data"/>
<Com2/>
<div class="father">
com1对父说:{{fromCom1}}
</div> </div>
</template> <script> import Com1 from "./Com1"
import Com2 from "./Com2"
export default {
name: 'HelloWorld', data () {
return {
message:"给你大嘴巴子",
fromCom1:""
}
}, methods: {
Com1data(data){
this.fromCom1 = data
}
}, components: {//组件
Com1,
Com2
}
}
</script> <!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped >
.father{
background: orange
}
</style>

*:父组件的代码,记得要引入组件com1和com2

自己点一点,效果就出来了!

总结:

父组件向子组件传值四部走:
1.子组件在props中创建一个属性,用以接收父组件传过来的值
2.父组件中注册子组件
3.在子组件标签中添加子组件在props中创建的属性
4.把需要传给子组件的属性赋值

子组件向父组件传值:
1.子组件中需要以某种方式例如点击事件的方法来触发一个自定义事件
2.将需要传的值作为$emit的第二个参数,该值将作为实参传给响应自定义事件的方法
3.在父组件中注册子组件并在子组件标签上绑定对自定义事件的监听

子组件向子组件传值:与父亲类似,但是需要父亲充当一个桥梁,在main.js中加一句代码:

Vue.prototype.spead = new Vue()//非父子传值
 
博主:GGbondMan
链接:vue中文官网
 

vue传值(父子传值,非父子传值)的更多相关文章

  1. vue bus方式解决非父子组件间的传值

    对于非父子组件之间的传值 通常使用VUEX 和总线等方式解决 这里我聊聊发布订阅模式(总线) <body> <div class="app"> <ch ...

  2. Vue组件通信之非父子组件传值

    前言: 如果想要了解非父子关系的组件传值,最好是在了解父传子和子传父的基础上在来了解非父子传值可能会有更透彻的思路. 因为非父子传值是通过定义事件总线来代理实现父传子+子传父从而实现的传值方式. 这是 ...

  3. vue.js 创建组件 子父通信 父子通信 非父子通信

    1.创建组件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  4. vue组件通信之非父子组件通信

    什么顺序不顺序的.. 先来说说非父子组件通信. 首先,我们先来了解下vue中的 1.$emit  触发当前实例上的事件,附加参数都会传给监听器回调. 2.$on  监听当前实例上的自定义事件.事件可以 ...

  5. 【vue】父组件主动调用子组件 /// 非父子组件传值

    一  父组件主动调用子组件: 注意:在父组件使用子组件的标签上注入ref属性,例如: <div id="home"> <v-header ref="he ...

  6. vue中父子组件之间的传值、非父子组件之间的传值

    在Vue实例中每个组件之间都是相互独立的,都有自己的作用域,所以组件之间是不能直接获取数据.在项目开发中一个组件可能需要获取另一个组件的值,我们可以通过其他方法间接的获取.所以,获取的方法有以下几种: ...

  7. vue 非父子组件传值

    /*非父子组件传值 1.新建一个js文件 然后引入vue 实例化vue 最后暴露这个实例 2.在要广播的地方引入刚才定义的实例 3.通过 VueEmit.$emit('名称','数据') 4.在接收收 ...

  8. 组件基础(非父子组件传值)—Vue学习笔记

    最近几天忙着写Api去了,抽空把后面的内容下出来,然后再分享给大家web可以使用的api. 上次说了父子组件直接的传值,这次看一下非父子组件之间的传值(总线机制) 要实现非父子组件之间的传值非常重要的 ...

  9. Vue兄弟组件(非父子组件)状态共享与传值

      前言:网上大部分文章写的有点乱,很少有讲得易懂的文章. 所以,我写了篇在我能看得懂的基础上又照顾到大家的文章 =.= 作者:X1aoYE 备注:此文原创,转载请注明~  内容里的<br> ...

  10. vue非父子关系之间通信传值

    第一种方法: 通过给vue实例添加自定义属性 <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...

随机推荐

  1. ubuntu14.04本地域名服务器配置

    dnsmasq 1 修改dnsmasq配置文件/etc/dnsmasq.conf # Change this line if you want dns to get its upstream serv ...

  2. EL表达式中的empty和null

    EL表达式中的empty和null 先说一下EL表达式中的null和empty区别,然后再说说最近在项目中出现的一个有趣的问题. EL中的null和empty都可用来判断值是否为空,但两者存在略微的区 ...

  3. H3C 常见ISDN连接方式

  4. 【转载】Windows平台下利用APM来做负载均衡方案 - 负载均衡(下)

    概述 我们在上一篇Windows平台分布式架构实践 - 负载均衡中讨论了Windows平台下通过NLB(Network Load Balancer) 来实现网站的负载均衡,并且通过压力测试演示了它的效 ...

  5. servicemix-3.2.1 内置的服务引擎和绑定组件

    服务引擎: servicemix-bean servicemix-camel servicemix-cxf-se servicemix-drools servicemix-eip servicemix ...

  6. html(四)数据库curd操作与分页查询

    数据库操作curd : 1.首先要建立项目处理好自己逻辑包: 其中util工具包中建立两个工具类 jdbc连接和page分页 DBUtil.java: db工具类就是用于连接数据库的jdbc架包,里面 ...

  7. Oracle备库宕机启动解决方案

    简介 ORA-10458: standby database requires recovery ORA-01196: 文件 1 由于介质恢复会话失败而不一致 ORA-01110: 数据文件 1: ' ...

  8. 添加gitignore文件后使其生效

    https://www.cnblogs.com/AliliWl/p/7880243.html 遇到的问题 我们发现在添加.gitignore文件后,当我们想push文件的时候,我们声明的忽略文件还是会 ...

  9. vue项目多列导入

    用axios.post传一个数组参数使用:JSON.stringify(this.params) <form> <span class="upimg">&l ...

  10. git 常用操作命令(Common operation)

    win10清除已登录账号密码方法 打开控制面板(Control Panel): 选择用户账户(User Accounts): 选择管理你的凭据(Credential Manager): 管理windo ...