2019-06-04
1298
#vue
Jake Dohm
2176
Jun 4, 2019 ⋅ 4 min read

Cleaning up your Vue.js code with ES6+

Jake Dohm

Recent posts:

feb 11 the replay

The Replay (2/11/26): React performance wins, fine-grained frameworks, and more

Discover what’s new in The Replay, LogRocket’s newsletter for dev and engineering leaders, in the February 11th issue.

Matt MacCormack
Feb 11, 2026 ⋅ 34 sec read
react optimization shruti kapoor

A complete guide to React performance optimization

Cut React LCP from 28s to ~1s with a four-phase framework covering bundle analysis, React optimizations, SSR, and asset/image tuning.

Shruti Kapoor
Feb 11, 2026 ⋅ 9 min read
fine grained everything rich harris

Fine Grained Everything, and what comes after React Server Components

Rich Harris (creator of Svelte) joined PodRocket this week to unpack his Performance Now talk, Fine Grained Everything.

Elizabeth Becz
Feb 10, 2026 ⋅ 55 sec read
Cloudflare Stack Decisions LogRocket Article

Fortifying your stack with Cloudflare: A security playbook

Cloudflare strengthens security at the edge, but real protection depends on how you design, layer, and own controls beyond it.

Peter Aideloje
Feb 10, 2026 ⋅ 10 min read
View all posts

6 Replies to "Cleaning up your Vue.js code with ES6+"

  1. Great tips, one question, when I use the arrow functions I get undefined on this… Any suggestion?

    1. Hi, Maximiliano, thanks for reading!

      So, if “this” is returning “undefined”, you’re probably using arrow functions in the wrong place. You shouldn’t use them when defining a function for your data, or lifecycle methods, as you do want this to be bound to the context. So doing { mounted: () => { console.log(this.hello) } } will console log undefined (rightly).

      You should use arrow functions _within_ your methods, lifecylcles, etc. so that the context of “this” will always be your component.

      For more information on arrow functions, check out this article: https://codeburst.io/javascript-arrow-functions-for-beginners-926947fc0cdc

  2. (hello = 0) Destructuring works let { hello } = this and then I hello = 1 in the method and the value changes if I assign it to a different value but when a different method later calls the data() for that particular data it is as-if it was never changed at all because when I check it again it is still hello = 0.

    1. Hi, Lou!

      So the reason mutating the value of “hello” doesn’t work, is that primitive values (like a number or string) are copied by value, not reference. When you do let { hello } = this, what it’s really doing is let hello = this.hello, which *copies* the value of this.hello into a new local variable. So when you mutate your local variable, it won’t change the value of this.hello.

      For more information, check out this AWESOME article on value vs reference in JS: https://codeburst.io/explaining-value-vs-reference-in-javascript-647a975e12a0

Leave a Reply

Would you be interested in joining LogRocket's developer community?

Join LogRocket’s Content Advisory Board. You’ll help inform the type of content we create and get access to exclusive meetups, social accreditation, and swag.

Sign up now