解决控制台报错:Property or method “showInfo“ is not defined on the instance but referenced during render

简介: 笔记

前言


今天写一个vue的单击事件,发现报错了

源代码如下

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>初始vue</title>
    <!-- 引入vue.js -->
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
    <div id="root">
        <h2>欢迎学习:{{name}}</h2>
        <button v-on:click="showInfo">点我提示信息</button>
    </div>
    <!-- 数据代理:通过一个对象代理另一个对象中属性的操作(读/写) -->
    <script type="text/javascript">
      function showInfo(){
        alert("你好!")
      }
      Vue.config.productionTip = false
        const vm=new Vue({
            el:'#root',
            data:{
                name:'vue'
            }
        }) 
    </script>
</body>
</html>

20.png

报错信息如下

21.png

解决问题


分析问题发现,是由于我的单击回调函数写的不对,我是用的js方式写的这个函数,但是在vue中读取不到这个函数,所以才会报错!


需要使用vue的一个属性:methods

把回调函数写在里面,才能读取到函数,传统js写法是不行的!


我们修改代码,把函数放到methods里面,需要去掉function,只需要保留函数名称以及基本格式

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>初始vue</title>
    <!-- 引入vue.js -->
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
    <div id="root">
        <h2>欢迎学习:{{name}}</h2>
        <button v-on:click="showInfo">点我提示信息</button>
    </div>
    <!-- 数据代理:通过一个对象代理另一个对象中属性的操作(读/写) -->
    <script type="text/javascript">
      function showInfo(){
        alert("你好!")
      }
      Vue.config.productionTip = false
        const vm=new Vue({
            el:'#root',
            data:{
                name:'vue'
            },
            methods:{
                 showInfo(){
                 alert("你好!")
                }
            }
        }) 
    </script>
</body>
</html>

22.png

再次点击按钮测试,发现已经解决问题

23.png

总结


在编写vue代码时,我们需要遵循vue的写法,不能一位的使用js代码去实现vue的功能

其他回调函数也是一样的写法,都要写在vue的属性methods里面,让vue可以读取到这个回调函数

相关文章
|
2月前
vue-cli 如何让Eslint 报错在浏览器控制台输出
vue-cli 如何让Eslint 报错在浏览器控制台输出
33 0
|
2月前
|
Web App开发 前端开发 JavaScript
控制台出现报错DevTools failed to load source map: Could not load content for chrome-extension://的原因及解决方案
控制台出现报错DevTools failed to load source map: Could not load content for chrome-extension://的原因及解决方案
56 0
控制台出现报错DevTools failed to load source map: Could not load content for chrome-extension://的原因及解决方案
|
15天前
|
安全 数据管理 数据库
数据管理DMS操作报错合集之阿里云DMS控制台上展示出了已经删除的数据库信息,如何解决
数据管理DMS(Data Management Service)是阿里云提供的数据库管理和运维服务,它支持多种数据库类型,包括RDS、PolarDB、MongoDB等。在使用DMS进行数据库操作时,可能会遇到各种报错情况。以下是一些常见的DMS操作报错及其可能的原因与解决措施的合集。
|
22天前
|
运维 Devops Shell
云效产品使用报错问题之流水线通过控制台创建的用yaml实现失败如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
6月前
|
消息中间件
RabbitMq没开启rabbitmq_management插件控制台报错Node statistics not available
RabbitMq没开启rabbitmq_management插件控制台报错Node statistics not available
|
JavaScript
Vue 打包后打开为空白页面 并且控制台报错‘Failed to load resource: net::ERR_FILE_NOT_FOUND’
Vue 打包后打开为空白页面 并且控制台报错‘Failed to load resource: net::ERR_FILE_NOT_FOUND’
Vue 打包后打开为空白页面 并且控制台报错‘Failed to load resource: net::ERR_FILE_NOT_FOUND’
|
7月前
|
算法 程序员
idea中查看控制台的 红色字报错信息
一些小的理解, 小技巧, 会持续更新...
163 0
|
10月前
|
Web App开发
Chrome谷歌浏览器F12打开控制台报错
Chrome谷歌浏览器F12打开控制台报错
318 0
|
10月前
|
前端开发
ajax返回无数据时防止控制台报错的解决方案
ajax返回无数据时防止控制台报错的解决方案
53 0