VueJs 是否有像 React 一样的受控和非受控组件的概念?

gar*_*mac 5 javascript reactjs vue.js vuejs2

React 有受控和不受控https://reactjs.org/docs/uncontrol-components.html组件的概念。

受控的是在 React 模型中工作的组件,并且在虚拟 dom 中跟踪状态。

而不受控制的是虚拟dom之外的管理。

由于 Vue 也可以使用虚拟 dom,是否有错误的方式来获取元素(例如,如果是 vanillajs 来操作 dom,你可以使用document.queryBySelector或像你那样使用)吗?classList.add

bie*_*221 0

正如你所说,使用普通 JS 来定位元素并没有错,但这不是最佳实践,Vue 可能会拒绝任何外部干扰 DOM 的尝试。

当我需要从 DOM 获取特定元素并使用普通方法操作它时,我总是从 Vue 结构中进行操作,而不是从单独的文件或脚本中进行。我会这样做或这样做的一些变体:

new Vue({
  ...,
  methods:{
    setClass() {
      let elem1 = document.querySelector("#elem1");
      elem1.classList.add("yourClass");
    }
  },
  mounted() {
    let elem2 = document.querySelector("#elem2");
  }
}
Run Code Online (Sandbox Code Playgroud)

如果您想添加或删除类,我建议您使用 Vue 原生的类绑定选项。如果您正在处理表单,则 v-model 是最佳选择。