Navigation Menu

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[vue] vue怎么获取DOM节点? #346

Open
haizhilin2013 opened this issue Jun 20, 2019 · 6 comments
Open

[vue] vue怎么获取DOM节点? #346

haizhilin2013 opened this issue Jun 20, 2019 · 6 comments
Labels
vue vue

Comments

@haizhilin2013
Copy link
Collaborator

[vue] vue怎么获取DOM节点?

@haizhilin2013 haizhilin2013 added the vue vue label Jun 20, 2019
@maozhuo123
Copy link

ref

@getanimation
Copy link

view:v-ref:xxx
data:this.$ref.xxx 这样就ok啦

@canwdev
Copy link

canwdev commented Feb 22, 2020

<template>
  <div>
    <input ref="myInput" type="text" value="hello world">
    <button @click="getText">getText</button>
  </div>
</template>

<script>
  export default {
    methods: {
      getText() {
        const input = this.$refs.myInput
        console.log(input)
        alert(input.value)
      }
    }
  }
</script>

@qq-radio
Copy link

qq-radio commented Jan 2, 2021

1、document.getElementById("id")
2、this.$refs.xx

@qq-radio
Copy link

qq-radio commented Jan 2, 2021

1、document.getElementById("id")
2、this.$refs.xx

还有一些特殊的,比如this.$root、this.$parent、this.$children

@Cai-zhiji
Copy link

Cai-zhiji commented Jul 7, 2023

Vue中获取DOM节点有多种方式,以下是几种常见的方法:

通过ref属性: 在Vue组件中,可以使用ref属性来标识一个DOM元素,并通过this.$refs来获取对应的DOM节点。

<template>
  <div ref="myElement">Hello, World!</div>
</template>

<script>
export default {
  mounted() {
    const element = this.$refs.myElement;
    // 使用element来操作DOM节点
  },
};
</script>

通过事件参数: 在事件处理函数中,事件参数会自动传递给处理函数,可以通过事件参数来访问和操作DOM节点。

<template>
  <button @click="handleClick">Click Me</button>
</template>

<script>
export default {
  methods: {
    handleClick(event) {
      const button = event.target;
      // 使用button来操作DOM节点
    },
  },
};
</script>

通过原生JavaScript方法: 可以使用原生JavaScript的DOM操作方法来获取DOM节点。例如,可以使用document.getElementById、document.querySelector等方法来选择和获取DOM节点。

<template>
  <div id="myElement">Hello, World!</div>
</template>

<script>
export default {
  mounted() {
    const element = document.getElementById('myElement');
    // 使用element来操作DOM节点
  },
};
</script>

需要注意的是,Vue鼓励将DOM操作尽量放在组件的生命周期钩子函数中进行,例如mounted钩子函数,在组件挂载后执行DOM操作。这样可以确保DOM已经被正确地渲染和挂载,避免操作未被正确渲染的DOM节点。

另外,需要注意避免直接操作DOM节点,而是尽量使用Vue的数据驱动方式进行开发,通过修改数据来改变DOM的状态和内容。直接操作DOM节点可能会绕过Vue的响应式系统,导致数据和视图不同步,影响应用的稳定性和可维护性。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
vue vue
Projects
None yet
Development

No branches or pull requests

6 participants