博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue(从白痴到白痴)
阅读量:5942 次
发布时间:2019-06-19

本文共 975 字,大约阅读时间需要 3 分钟。

一、组件间的通信

1.爷爷与孙子之间的通信。

最近做了一个类似朋友圈的需求。在下做的评论页(上方动态详情,下方评论列表,最底部fixed点赞+评论的编辑框)。如图:

 

妈呀,图太大。

爷爷组件要把点赞信息传给孙子,爷爷→爸爸→孙子。孙子还要改变这个点赞信息。vue父子组件通信需要通过prop,但是呢,子组件没法改这个prop,

a.通过一层一层emit?这样不好,太麻烦了

b.prop赋给一个新属性,但是,这个prop的值爷爷第一次给传了个默认值,爷爷请求接口后又给传了,造成的后果是,虽然prop总是最新的,但是孙子拿到的总是第一次传的。完成不了。

c.一个比较厉害的前端大哥跟我说:我直接把这个信息放到一个对象里传给你吧,这样就可以随意修改了,就好像const一个常量,修改这个常量会报错,但const的是一个对象,修改对象下的属性是不报错的,以此类推,是不是父组件传个object,子组件修改其属性就没问题了呢,试了一把,果然好用这呢,哈哈哈。

二、this指向

a.对于普通函数(包括匿名函数),this指的是直接的调用者,在非严格模式下,如果没有直接调用者,this指的是window。showMessage1()里setTimeout使用了匿名函数,this指向window。

b.箭头函数是没有自己的
this
,在它内部使用的
this
是由它定义的宿主对象决定。showMessage2()里定义的箭头函数宿主对象为vue实例,所以它里面使用的
this
指向vue实例。
注:
【普通函数的
this
普通函数的
this
是由动态作用域决定,它总指向于它的直接调用者。具体可以分为以下四项:
this
总是指向它的直接调用者, 例如 obj.func() ,那么func()里的
this
指的是obj。
在默认情况(非严格模式,未使用 
'use strict'
),如果函数没有直接调用者,
this
为window
在严格模式下,如果函数没有直接调者,
this
为undefined
使用call,apply,bind绑定的,
this
指的是绑定的对象

转载于:https://www.cnblogs.com/superil/p/9014930.html

你可能感兴趣的文章
世界在音乐中得到了完整的再现和表达。
查看>>
数据分析推荐书籍
查看>>
平衡的括号
查看>>
iphone 使用popViewController如何避免内存泄露
查看>>
Redis和MySQL数据同步及Redis使用场景
查看>>
字符串最小编辑距离
查看>>
关于编程
查看>>
Oracle Database 快捷版 安装 连接
查看>>
java-数组排序--冒泡排序、鸡尾酒排序、地精排序
查看>>
bzoj3876
查看>>
bzoj3996
查看>>
flex中toolTip汇总
查看>>
Oracle脚本批量导入时,输出日志文件
查看>>
常用的正则表达式
查看>>
MFC中的MainFrame Dlg,App,Doc,View的关系
查看>>
负载均衡器之 Haproxy
查看>>
case语句
查看>>
RR隔离级别下通过next-key locks 避免幻影读
查看>>
使用react全家桶制作博客后台管理系统
查看>>
vue绑定html的class属性的方法
查看>>