请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,请问为啥通过m.list[1] = {id: "....",text:"dell1"}不可以刷新页面数据?

老师,请问为啥输入vm.list[1].text = "Dell1"可以刷新页面中的dom数据,而vm.list[1] = {id: "....",text:"dell1"}不可以,是因为直接按索引修改数组不会触发defineproperty中的set而导致无法触发vue的响应式系统?

正在回答

1回答

Dell 2018-04-15 23:34:32

是的,因为后者你直接就给引用改了,新的引用对应的对象vue并不处理,所以对象是没有setter和getter的,也就不会跟页面做绑定

0 回复 有任何疑惑可以回复我~
  • 提问者 K丶L #1
    谢谢老师!
    回复 有任何疑惑可以回复我~ 2018-04-15 23:37:04
  • Dell 回复 提问者 K丶L #2
    不必客气,很开心你能问这样比较深的问题,可以看vue的源码,在1100行左右你可以看到defineProperties的具体实现
    回复 有任何疑惑可以回复我~ 2018-04-15 23:38:57
  • 提问者 K丶L 回复 Dell #3
    哈哈,谢谢老师,第一次见到这么认真负责的老师,赞一个。话说,老师,您接下来会不会出react方面的课程,被您圈粉了,想学~
    回复 有任何疑惑可以回复我~ 2018-04-15 23:47:28
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信