vue 上下文中的 getElementsByClassName

2024-02-25

在 vue.js 的上下文中,getElementsByClassName 是如何工作的?

我有下面的代码片段 - 目标是单击按钮并使用 vue.js 方法将 h1 标签的颜色更改为绿色:

<html>
    <head>
        <script src="https://cdn.jsdelivr.net/npm/[email protected] /cdn-cgi/l/email-protection/dist/vue.js"></script>
    </head>
    <body>
    <div id="app">
        <h1 class="main-header">{{ message }}</h1>
        <button v-on:click="colorChange">Click me</button>
    </div>
    <script>
        var app = new Vue({
        el: '#app',
            data: {
                message: 'Hello Vue!'
            },
            methods: {
                colorChange: function() {
                    // what do I do here...?
                }
            }
        })
    </script>
    </body>
</html>

据我了解,Vue 就像带有虚拟 DOM 的 React,你不能直接修改它。

显然在普通 JS 中你就这样做document.getElementsByClassName('main-header')[0].style.backgroundColor="green";但这在 Vue 中似乎违反直觉。

我是否过于复杂化了,这实际上是如何运作的吗?或者 Vue 有特殊的方法来处理这个问题吗?我一直在看https://v2.vuejs.org/v2/guide/class-and-style.html https://v2.vuejs.org/v2/guide/class-and-style.html但它只是解释了如何绑定类。我也在读https://v2.vuejs.org/v2/guide/events.html https://v2.vuejs.org/v2/guide/events.html但我很难找到我需要的关于定位元素/以某种方式修改它的内容......

如何在 Vue 上下文中选择和/或修改元素?


你是对的。在 Vue 中,直接与 DOM 交互是违反直觉的。

幸运的是,有一个指令允许您通过绑定到数据属性来直接应用样式更改。 (请记住,您也可以对类执行类似的操作)。

<h1 class="main-header" v-bind:style="{ color: activeColor}">{{ message }}</h1>
<button v-on:click="colorChange">Click me</button>

在您的组件中,创建一个数据属性并在单击按钮时更新它:

data: {
    message: 'Hello Vue!',
    activeColor: 'red'
},
methods: {
    colorChange: function() {
        this.activeColor = 'green'
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue 上下文中的 getElementsByClassName 的相关文章

随机推荐

  • strlen() 和 UTF-8 编码 [重复]

    这个问题在这里已经有答案了 假设UTF 8编码 PHP中的strlen 这个字符串的长度有可能是4吗 我只想了解 strlen 而不是其他函数 这是字符串 1 2 我在自己的电脑上测试过 验证了UTF 8编码 得到的答案是6 我在 strl
  • Client.ipa 不包含文件

    自从过去几天以来 我一直在为这个错误而烦恼 当我尝试提交基于 cordova 的 iOS 应用程序时 出现符号工具失败的错误 这是我的日志中的内容
  • nvcc 和 NVIDIA-smi 显示的不同 CUDA 版本

    我对运行时显示的不同 CUDA 版本感到非常困惑which nvcc and nvidia smi 我的 ubuntu 16 04 上安装了 cuda9 2 和 cuda10 现在我将 PATH 设置为指向 cuda9 2 所以当我跑步时
  • Android 列表视图中未显示顶部和底部分隔线

    按照我的理解 为列表视图定义的分隔线也应该出现在列表的顶部和底部 即第一个项目的上方和最后一个项目的下方 由于某种原因 它们没有出现在我的列表视图中
  • 出现错误:插件/预设文件不允许导出对象,只能导出函数

    我在使用 webpack 和 babel 设置我的 React 应用程序时遇到此错误 我尝试更改 babel 的版本 但仍然遇到相同的错误 我不明白问题出在哪里 ERROR in src index jsx Module build fai
  • 使用 Fluent NHibernate 执行 Sql 语句

    基本上我希望能够做到这一点 session ExecuteSql 我不需要它映射到任何实体或返回任何值 有什么建议么 正如已经提到的 这不是 Fluent NHibernate 问题 但这里有一个示例 public int GetSqlCo
  • 仅 CSS 中的上标?

    如何仅在 CSS 中完成上标 我有一个样式表 我用上标字符标记外部链接 但我很难正确对齐字符 我目前拥有的看起来像这样 a external after font size 50 vertical align top content 但它不
  • 参数允许包装泛型函数,但推断不允许

    当对函数参数使用推理时 如果不适用于实用程序类型参数 Typescript 会引发错误 举个例子 操场 https www typescriptlang org play code JYOwLgpgTgZghgYwgAgGLADaSgHgC
  • 如何每天下午 2 点运行 TimerTask?

    我想每天下午 2 点执行一项工作 哪种方法java util Timer我可以用它来安排我的工作吗 2 小时后 运行它将停止作业并重新安排到第二天下午 2 点 Calendar today Calendar getInstance toda
  • 如何识别4个方向的滑动?

    我需要识别各个方向的滑动 上下左右 不是同时 但我需要认出它们 I tried UISwipeGestureRecognizer Swipe UISwipeGestureRecognizer alloc initWithTarget sel
  • Spring - 使用 XSLT 的网页

    我是 XSLT 的新手 我知道将 XSLT 集成到 Spring Web 应用程序中的最佳解决方案是什么 我找到了简单的例子here http www java2s com Code Java JSP JSPXMLandXSLTtransf
  • glmer - 使用二项式数据进行预测(cbind 计数数据)

    我正在尝试预测在我的二项式数据上运行的 glmer 模型随时间的变化 x 轴中的天数 的值 Total Alive 和 Total Dead 是计数数据 这是我的模型 以及下面相应的步骤 full model dredge lt glmer
  • C# 扩展方法不允许通过引用传递参数吗?

    在 C 中创建一个将实例作为引用传递的扩展方法真的不可能吗 下面是一个 VB NET 控制台应用程序示例 Imports System Runtime CompilerServices Module Module1 Sub Main Dim
  • 如何使用 angularjs $http.delete() 请求发送数据?

    我有一个资源 角色 它与 用户 有多对多的关系 要管理 角色 我需要将角色 ID 和用户 ID 发送到服务器 以便它从正确的用户 不一定是登录用户 中删除角色 这是我正在尝试的 但根据docs http docs angularjs org
  • 将变量传递给工厂 angularjs

    我想将一个变量传递给我的工厂 但我不太确定如何做到这一点 这是我的代码 var app angular module docFinder app factory docFactory function http var url http t
  • 选择 XML 元素,无论 XPATH 的级别如何

    我有这个 a b b a
  • 如何使用 Node.js 最有效地解析网页

    我需要解析一个简单的网页并从 html 中获取数据 例如 src data attr 等 如何使用 Node js 最有效地完成此操作 如果有帮助 我正在使用 Node js 0 8 x 附 这是site http tunes io 我正在
  • 将代码添加到 C# 属性获取/设置而不需要支持字段?

    您知道如何拥有自动生成支持字段的属性吗 就像我去的话 public String SomeProperty get set 我知道 如果我想向该属性添加代码 我必须创建支持字段 如下所示 public string someProperty
  • 动态应用程序级资源在 ElementHost 中托管时不是动态的

    我在 WinForms 容器中托管 WPF UserControl 现在 我希望能够为 UserControl 设置主题 皮肤 为此 我有几个定义 皮肤 的资源字典 当我的应用程序启动时 我创建一个 new System Windows A
  • vue 上下文中的 getElementsByClassName

    在 vue js 的上下文中 getElementsByClassName 是如何工作的 我有下面的代码片段 目标是单击按钮并使用 vue js 方法将 h1 标签的颜色更改为绿色 div h1 class main header mess