vue 什么时候用this?

场景描述:
最近使用vue-router写路由的时候突然发现一个问题。html里面使用this.routerParams时获取不到响应的值,但是使用routerParams可以正常获取到值。我就想问为什么这里使用this.routerParams我为什么得到的是undefined?
html:
clipboard.png
js
clipboard.png

阅读 9k
1 个回答

首先,你需要分清楚在Vue中的两种值的形式:模板和表达式。

模板:格式为{{...}},模板本身的类型,可以认为是字符串,但是可以被模板的解析器展开成可以识别的内容。
表达式:可以直接执行的代码,也就是说基本上与JS代码并无二致,只是所有的方法和数据都省略this

在Vue的HTML代码中,:to其实是v-bind:to数据绑定的简写。数据绑定后面的值,是表达式。所以,对于表达式,和JS写法一致,只是所有的this全被省略。

而你下面watch部分属于JS内容,所以需要this

如果你在:to里写this,由于表达式本身省略this,所以实际上你调用的是this.this值。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题