23

Here is a VueJS component:

<template>
  <a @click="log">click me<a>
</template>

<script>
  export default {
    data() {
      return {
        a: "a",
        b: "something",
        foo: { bar: "baz" },
        // etc.
      }
    },
    methods: {
      log() {
        // console.log( data ); 
        // ???
      }
    }
  }
</script>

I want to access the data from the log function and get it as an object (just like in its declaration). I know I can get data like this :

log() {
  console.log( this.a );
  console.log( this.b );
  console.log( this.foo );
}

But what I want is the whole data as an object (because I want to send the data via an event to a parent component).

Is there a way to get the whole data object inside a method of a component?

2 Answers 2

51

You can access the current component's data object using this.$data.

Reference: Link

So the log function should be like:

log() {
  console.log(this.$data.a);
  console.log(this.$data.b);
  console.log(this.$data.foo);
}
Sign up to request clarification or add additional context in comments.

Comments

8

I think what you are looking for is to return the whole data object, like this:

log() {
  console.log(this.$data);
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.