解决控制台报错: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>

在这里插入图片描述
报错信息如下
在这里插入图片描述

解决问题

分析问题发现,是由于我的单击回调函数写的不对,我是用的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>

在这里插入图片描述

再次点击按钮测试,发现已经解决问题
在这里插入图片描述

总结

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

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

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
非常抱歉给您带来困扰,ttkbootstrap库并没有提供名为Table的部件。但是,您可以使用其他库来实现这个功能,比如使用tkinter的Treeview部件来展示Excel数据。以下是一个修改后的示例代码: ```python import tkinter as tk from tkinter import filedialog import pandas as pd from ttkbootstrap import Style from tkinter import messagebox from openpyxl import Workbook # 创建主窗口 root = tk.Tk() style = Style(theme='flatly') root.title("Excel文件处理") root.geometry("800x600") # 创建Treeview部件 tree = style.Treeview(root) tree.pack(fill=tk.BOTH, expand=True) # 定义函数:选择并读取Excel文件 def select_file(): file_path = filedialog.askopenfilename(filetypes=[("Excel files", "*.xlsx;*.xls")]) if file_path: df = pd.read_excel(file_path) show_data(df) # 定义函数:展示Excel数据 def show_data(df): # 清空Treeview内容 tree.delete(*tree.get_children()) # 添加表头 columns = df.columns.tolist() tree["columns"] = columns for col in columns: tree.heading(col, text=col) # 添加数据行 for row in df.itertuples(index=False): tree.insert("", tk.END, values=row) # 添加保存按钮 save_button = style.Button(root, text="保存", command=lambda: export_data(df)) save_button.pack(pady=10) # 定义函数:导出数据到Excel文件 def export_data(df): file_path = filedialog.asksaveasfilename(defaultextension=".xlsx", filetypes=[("Excel files", "*.xlsx")]) if file_path: df.to_excel(file_path, index=False) messagebox.showinfo("导出成功", "数据已成功导出!") # 创建选择文件按钮 select_button = style.Button(root, text="选择文件", command=select_file) select_button.pack(pady=20) root.mainloop() ``` 这段代码使用了tkinter的Treeview部件来展示Excel数据,并通过pandas读取和处理Excel文件。用户可以在窗口中对表格进行修改,并可以点击保存按钮将修改后的数据导出为Excel文件。 请确保您已经安装了ttkbootstrap、pandas和openpyxl库,可以使用以下命令进行安装: ``` pip install ttkbootstrap pandas openpyxl ``` 希望这个示例能够满足您的需求!如果有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小花皮猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值