<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="../vue1026.js"></script> </head> <body> <template id = "son"> <button @click = 'senddata'>发送数据给父组件</button> </template> <div id='app'> <son v-on:send="getdata"></son> </div> </body> <script> new Vue({ el:'#app', methods:{ getdata:function(input){ alert(input); } }, components:{ 'son':{ template:'#son', methods:{ senddata:function(){ this.$emit('send','hello'); } }, } } }) </script> </html>
我的疑问是这段代码里面获取数据为什么一定要用getdata这个方法的参数来获取,这个方法的其实就是空的呀,为什么不直接在data里面定义一个属性来接收呢
子组件发送数据是通过v-on:send来发送的,可不可以用v-bind呢?
senddata函数体里面有 this.$emit, 那#app到底自带哪些方法呢
也可以直接在data里面定义一个属性来接收:
data: {
param1: ''
}
<son v-on:send="input => param1 = input"></son>
v-on 和 v-bind 是不同意义的指令,互不相干
console.log(this) 就知道