Vue. How to get a value of a “key” attribute in created element

前端 未结 3 1992
悲哀的现实
悲哀的现实 2020-12-17 09:48

I try to create a components and get its key for using in axios. Elements created, but I can\'t get a key. It\'s undefined

相关标签:
3条回答
  • 2020-12-17 10:05

    This answer answers the question of how you would pass the key to a child component. If you just want to get the current key from inside the child component, use the highest voted answer.


    key is a special attribute in Vue. You will have to call your property something else.

    Here is an alternative using pkey instead.

    console.clear()
    var pItem = {
      props: ['pkey'],
      template: '<div :test="pkey"></div>',
      created: function() {
        console.log(this.pkey);
      }
    };
    new Vue({
      el: '#root',
      components: {
        'paddock-item': pItem
      },
      data: {
        paddocks: [{
            key: 1
          },
          {
            key: 2
          },
          {
            key: 3
          },
          {
            key: 4
          }
        ]
      }
    })
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.4.2/vue.js"></script>
    <div class="container" id="root">
      <paddock-item v-for="paddock in paddocks" :pkey="paddock.key" :key="paddock.key" class="paddock">
      </paddock-item>
    </div>

    0 讨论(0)
  • 2020-12-17 10:08

    you don't need to use an extra attribute. You can get the key by

    this.$vnode.key
    
    0 讨论(0)
  • 2020-12-17 10:24

    Using Vue extension for chrome you can see the keys in the elements tree:

    Here is the link to extension: https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd

    0 讨论(0)
提交回复
热议问题