代码之家  ›  专栏  ›  技术社区  ›  nowox

如何从JS控制台访问Vue组件中的变量?

  •  0
  • nowox  · 技术社区  · 6 年前

    <template>
      <div>{{hello}}</div>
    </template>
    <script>
    export default {
      data() {
        hello: "Hello World!",
        secret: "The answer is 42"
      }
    }
    </script>
    

    我怎样才能得到并操纵 secret 从Chrome调试控制台?

    这可能吗?

    1 回复  |  直到 6 年前
        1
  •  10
  •   zero298    6 年前

    在Vue.js论坛上也有类似的讨论。明确地, SevenLines post on Mar 25 2018 内容如下:

    控制台,选择所需组件,然后通过 $vm变量。使用示例检查图像:

    Example image

        2
  •  3
  •   aNulliHate    5 年前

    // if result is single element
    document.getElementById('app').__vue__
    
    // if result is multiple elements
    document.getElementsByClassName('some-class')[0].__vue__
    

    假设你的条目使用了id应用程序

    也可以在其他元素中执行此操作,只要标识为Vue组件 element

        3
  •  1
  •   krubo    5 年前

    下面是我放在控制台中的内容,它会立即修改页面上显示的数据:

    myapp = app.__vue__.$children[0]
    myapp.hello = 'Bonjour'
    myapp.hello = 'Buenos dias'
    

    奇怪的是,如果跳过将对象分配给变量,它将无法按预期工作:

    app.__vue__.$children[0].hello = 'Bonjour'       // first time it works
    app.__vue__.$children[0].hello = 'Buenos dias'   // second time it doesn't work