我试图在vue中构建一个简单的应用程序,但我遇到了一个错误.我的onScroll函数的行为与预期的一样,但是当我单击我的按钮组件时,我的sayHello函数返回一个错误

属性或方法"sayHello"未在实例上定义,但

Vue.component('test-item', {
    template: '<div><button v-on:click="sayHello()">Hello</button></div>'
});

var app = new Vue({
    el: '#app',
    data: {
        header: {
            brightness: 100
        }
    },
    methods: {
        sayHello: function() {
            console.log('Hello');
        },
        onScroll: function () {
            this.header.brightness = (100 - this.$el.scrollTop / 8);
        }
    }
});

我觉得答案很明显,但我已经try 过搜索,但没有找到任何答案.任何帮助都将不胜感激.

谢谢

推荐答案

但在某些特定情况下(主要是props),每个组件都是完全相互隔离的.分离数据、变量、函数等.这包括它们的方法.

因此,方法没有test-item.

Vue.js相关问答推荐

将事件监听器绑定到动态元素

无法解析组件:google—pay—button

VueJS使所有组件崩溃,而不是只有一个

Vue 2 如何在全局函数中返回观察者

Nuxt3: 安装vue3-spinner (error: require is not defined in ES module scope)

vue3 输入标签给出错误 Vue.use 不是函数

云Firestore保存额外的用户数据

vue 模板中无法识别 pug 语言

查看 cli3 启用 CORS

当前端和后端位于虚拟 docker 网络中时,如何使用 axios 寻址后端主机

此 set-cookie 已被阻止,因为它具有 samesite=lax

v-if inside v-for - 在两列中显示项目列表

如何在 vuetify 中将工具提示添加到数据表标题?

过渡后的 v-if 下方的过渡元素

在vue中单击时如何模糊元素

使用 puppeteer 生成 PDF 而不保存

Vue 2.0 设置路由 - 不要使用new来产生副作用

vue-router 如何使用 hash 推送({name:"question"})?

使用 vue.js 获取调用元素

Vue-meta:metaInfo 无权访问计算(computed)属性