父子节点之间的相互获取
用this.$refs.child,这个child与上边的ref=‘child’是对应的。这样就可以获取到这整个虚拟dom,就可以对其中的任意一个属性操作。
组件之间的操作只有存在于父子组件才能用this. p a r e n t 和 父 节 点 取 到 整 个 子 节 点 的 用 法 一 样 , t h i s . parent 和父节点取到整个子节点的用法一样,this. parent和父节点取到整个子节点的用法一样,this.parent.title,可以获取到父节点中的title值。
兄弟之间的值的相互获取
用到了
e
m
i
t
和
emit和
emit和on
在传值的时候需要给传值的dom节点添加点击事件@click=‘send()’,当然这个函数是不唯一的,
在send中用(vm.
e
m
i
t
(
′
a
a
′
,
t
h
i
s
.
t
i
t
l
e
)
)
,
a
a
也
不
是
唯
一
的
,
v
m
是
为
了
传
递
数
据
的
时
候
有
一
个
相
同
的
量
来
进
行
调
用
,
事
先
声
明
l
e
t
v
m
=
n
e
w
V
u
e
(
)
−
−
−
−
−
在
接
受
的
虚
拟
d
o
m
中
要
用
v
m
.
emit('aa',this.title)),aa也不是唯一的,vm是为了传递数据的时候有一个相同的量来进行调用,事先声明 let vm=new Vue({})-----在接受的虚拟dom中要用vm.
emit(′aa′,this.title)),aa也不是唯一的,vm是为了传递数据的时候有一个相同的量来进行调用,事先声明letvm=newVue()−−−−−在接受的虚拟dom中要用vm.on(‘aa’,(msg)={}),其中要注意到aa也不是唯一的值,但是要和上方传递过来的值一样,这样就能获取到其他组件传递过来的值了。
父子之间的组件操作
在<v-child @toparent=‘tap’>,tap为组件中的函数,这里不加()是为了可以在父元素中直接用tap(msg)中的msg来得到返回的数据,如果在上方用tap()这样的形式,则需要在()中添加一个实参
e
v
e
n
t
,
也
就
是
t
a
p
(
event,也就是tap(
event,也就是tap(event)
发送的数据,需要在子组件中写入;this.$emit(‘toparent’,this.title)其中前边的toparent要和<v-child @toparent=‘tap’>中的@toparent一致。