Vue.set is the way to go here, which used to be more prominent in the docs. The section that called this out (along with other reactivity "gotchas") has apparently been removed from the latest version.
Here's an archive link: http://web.archive.org/web/20170711045330/https://vuejs.org/...