❤ vue3 使用报错

❤ vue3 项目使用报错

vue3语法变动

TypeError: Assignment to constant variable (常量变量)

背景:
Vue3 项目使用
TypeError: Assignment to constant variable.
在这里插入图片描述
原因:

因为我对const定义的常量重新赋值了
在这里插入图片描述

在这里插入图片描述

解决方法:

换成 var 声明
在这里插入图片描述

[Vue warn]: Property “index” was accessed during render but is not defined on instance. (v-if 与 v-for)

当 v-if 与 v-for 一起使用时,v-if 具有比 v-for 更高的优先级。

(setup语法糖)Property “selectedItemIndex“ was accessed during render but is not defined on instance. 报错解决

使用

请确保按照以下步骤检查和修复此问题:

<script setup>部分使用ref函数来定义响应式变量,并通过解构赋值从返回的引用对象中获取变量

<script setup>
import { ref } from 'vue';
 
const selectedItemIndex = ref(-1); // 使用ref定义响应式变量
const items = [/* your item data */]; // 你的选项数据
 
// ...其它代码
</script>

2、确保在模板中正确访问响应式变量。在模板中,使用.value来访问ref包装的响应式变量。

<template>
  <ul>
    <li
      v-for="(item, index) in items"
      :key="index"
      :class="{ active: index === selectedItemIndex.value }" <!-- 使用 .value 访问变量 -->
      @click="selectItem(index)"
    >
      {{ item }}
    </li>
  </ul>
</template>

3、检查selectItem函数是否在正确的位置,并确保它能够访问到selectedItemIndex变量。

<script setup>
// 先导入需要的模块和函数
 
// 确保 `selectedItemIndex` 变量在这之前定义
const selectedItemIndex = ref(-1);
const items = [/* your item data */];
 
// 定义 `selectItem` 函数并确保它能够访问到 `selectedItemIndex` 变量
const selectItem = (index) => {
  selectedItemIndex.value = index;
};
</script>

通过检查上述步骤,您可以解决警告消息“Property ‘selectedItemIndex’ was accessed during render but is not defined on instance.”。确保正确定义和访问响应式变量,并将其绑定到模板中以供渲染使用。

(setup语法糖) Uncaught SyntaxError: Cannot use import statement outside a module

1.问题描述
在使用html直接写 vue3 里面的语法糖setup 时候遇到 :

Uncaught SyntaxError: Cannot use import statement outside a module

直接在浏览器中打开该html文件,发现报错了:Uncaught SyntaxError: Cannot use import statement outside a module
报错的原因是用了es6的语法, 浏览器默认将它作为js解析会出现问题,需要将它作为模块导入,script标签默认type=“text/javascript”,需要改为type=“module”

————————————————

(vue3新特性类型错误-Vue3)Assignment to constant variable.

一个关于常变量的报错:赋值给常变量
检查代码是否有给定义为const的变量进行赋值。
const :常量,不能修改它的值,且定义的常量必须赋初值;
let:变量,可以进行变量赋值操作,且不需要赋初值。

实际场景vue3
vue3 赋值reactive数据Assignment to constant variable.

情景:
在vue3之中使用reactive定义的对象,当我们试图整个更改这个对象时候,会告诉我们报错,但是单独更改这个对象的属性时正确;
在这里插入图片描述
原因:

在 Vue 3 中使用 reactive 函数创建的响应式数据是常量(immutable),这意味着一旦你为响应式对象分配了一个值,你就不能再重新分配给这个对象。如果你尝试这样做,你会遇到 “Assignment to constant variable” 的错误,因为 JavaScript 认为你试图改变一个常量变量的值。

正确用法:
应该直接修改响应式对象的属性而不是重新赋值整个对象,vue3之中使用toRefs转化一下


 import { ref, reactive ,toRefs } from 'vue'  
 const formvalue = reactive({
    name: '',
    age: '',
    sex: 1,
    type: [],
})
let form=toRefs(formvalue);


// 修改按钮点击
function handleEdit(row) {
  console.log(row,'修改');
  form=row;
  // form.age=18;
  centerDialogVisible.value = true;
}

语言TS报错

File ‘D:/LTB/code/Lintaibai/src/views/admin/index - 副本.vue.js’ is a JavaScript file. Did you mean to enable the ‘allowJs’ option?
The file is in the program because:
Root file specified for compilation

Found 1 error.

error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

在这里插入图片描述

缺失了lang=“ts” 导致的报错

在这里插入图片描述

打包报错

(配置项错误)File ‘xxx‘ is a JavaScript file. Did you mean to enable the ‘allowJs‘ option

在这里插入图片描述

查了一下说是由于我们的项目配置中缺少了‘allowJs’选项导致的。当我们在使用TypeScript编辑器编译项目时,如果项目中存在javaScript文件,但是没有启用’allowJs’选项,就会有上面的错误信息。

什么是“allowJs”选项:

在项目中如果同时使用javaScript和TypeScript。由于javaScript和TypeScript有语法和功能上的差异,我们需要告诉TypeScript编译器如何处理javaScript文件。TypeScript提供了“allowJs”选项。该选项用于指示TypeScript编译器是否允许编译javaScript文件。

解决:


1、在项目的tsconfig.json文件中

2、找到“compilerOptions”部分

3、在“compilerOptions”中添加“allowJs”选项,并设置为true
{
  "compilerOptions": {
    "allowJs": true,
    }
}

(配置项)Could not find a declaration file for module

tsconfig.json

"noImplicitAny": false,

(配置项)Cannot find module ‘vue-router’ or its corresponding type declarations.

这个错误表示你的项目中找不到 ‘vue-router’ 模块或其相应的类型声明

在这里插入代码片

错误翻译

Cannot find module ‘@/store/index’ or its corresponding type declarations.

找不到xxx模块或者声明文件

An import declaration can only be used at the top level of a namespace or module.

导入声明的文件只能在顶部使用

解决办法:

把import xxx from 'xxx’全部放在顶部(script后)

报错前:

<script setup lang="ts">
import { ref, reactive, onMounted, nextTick } from 'vue'
import { useRouter, useRoute } from 'vue-router'
import type { FormInstance, FormRules } from 'element-plus'
const router = useRouter()
import useStore from '@/store/index'
const storeUser = useStore()
</script>

处理后:

<script setup lang="ts">
import { ref, reactive, onMounted, nextTick } from 'vue'
import { useRouter, useRoute } from 'vue-router'
import useStore from '@/store/index'
import type { FormInstance, FormRules } from 'element-plus'
const router = useRouter()
const storeUser = useStore()
</script>

再次运行yarn build,成功打包!!!!

Vite特性报错

(类型引入错误)require is not defined in ES module scope, you can use import instead This file is being treated as an ES module because it has a ‘.js’ file extension and ‘D:\code\chendiyu\knowledge-has-no-limit\package.json’ contains.

使用require引入报的ES module导入错误
这个错误提示说明当前代码被当作 ES module 进行处理,但是使用了 CommonJS 的 require 语法,应该改为使用 import 语法。

如果你想继续使用 require 语法,可以按照提示中的建议将文件名改为 .cjs 后缀,或者在 package.json 中设置 “type”: “commonjs”。
如果你希望使用 ES module 的语法,可以将代码中的 require 改为 import。

Vite更加推荐使用 ES module 的写法
const mysql = require('mysql'); // 使用 CommonJS 的写法
import mysql from 'mysql' // 使用 ES module 的写法


// 使用 CommonJS 的写法
const fs = require('fs');

// 使用 ES module 的写法
import fs from 'fs';

版本问题

(echarts版本)Cannot read properties of undefined (reading ‘extendSeriesModel’)

echarts版本适用不兼容导致的

我本地的版本是5.4.3,过于高

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/546967.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JVM(Java虚拟机)内存管理基础理论

JVM&#xff08;Java虚拟机&#xff09;内存管理是Java开发和性能优化中的一个核心领域。理解JVM的内存结构和管理机制对于编写高效的Java程序和进行有效的性能调优非常重要。以下是一个关于JVM内存学习的大纲&#xff0c;涵盖了从基础知识到高级主题的各个方面&#xff1a; 1.…

EasyRecovery2024专业免费的电脑数据恢复软件

EasyRecovery数据恢复软件是一款功能强大的数据恢复工具&#xff0c;广泛应用于各种数据丢失场景&#xff0c;帮助用户从不同类型的存储介质中恢复丢失或删除的文件。 该软件支持恢复的数据类型非常广泛&#xff0c;包括但不限于办公文档、图片、音频、视频、电子邮件以及各种…

Hive on spark源码编译与调优

文章目录 一、编译环境准备1、hadoop和hive安装2、编译环境搭建3、Hive on Spark配置 二、Hive相关问题1、Hadoop和Hive的兼容性问题1.1 问题描述1.2 解决思路1.3 修改并编译Hive源码 2、Hive插入数据StatsTask失败问题3.1 问题描述3.2 解决思路 3、Hive和Spark兼容性问题3.1 问…

信也科技网络自动化实践-网络策略管理

1、背景 随着各种法律法规和行业标准的出台和更新&#xff0c;企业或组织需要遵守各种安全合规性要求。网络安全策略管理需要符合这些要求&#xff0c;从而保障企业或组织的安全和合规性。网络安全策略管理需要涵盖企业或组织的整个网络生命周期&#xff0c;包括网络规划、设计…

【JavaEE多线程】线程安全、锁机制及线程间通信

目录 线程安全线程安全问题的原因 synchronized 关键字-监视器锁monitor locksynchronized的特性互斥刷新内存可重入 synchronized使用范例 volatilevolatile能保证内存可见性volatile不保证原子性synchronized 也能保证内存可见性 wait 和 notifywait()方法notify()方法notify…

[BT]BUUCTF刷题第17天(4.15)

第17天&#xff08;共3题&#xff09; Web [强网杯 2019]高明的黑客 .tar.gz 是 Linux 系统下的压缩包&#xff0c;访问即可下载 打开后有3000多个php文件&#xff0c;通过题解得知需要写Python脚本找出合适的GetShell文件&#xff08;因为每个文件里都会通过system函数执行…

【Java开发指南 | 第九篇】访问实例变量和方法、继承、接口

专栏&#xff1a;Java开发指南 CSDN秋说 文章目录 访问实例变量和方法继承接口 访问实例变量和方法 通过已创建的对象来访问成员变量和成员方法&#xff0c;如下所示&#xff1a; /* 实例化对象 */ Object referenceVariable new Constructor(); /* 访问类中的变量 */ refer…

glitch功耗的问题在先进节点上更加突出

这个问题在 AI 加速器中尤为严重&#xff0c;修复这个问题需要一些tradeoff。 据估计&#xff0c;一些最先进和最复杂的芯片设计中总功耗的 20% 到 40% 被浪费了。 glitch功耗并不是一个新现象。在先进节点上&#xff0c;glitch功耗问题正变得越来越突出&#xff0c;没有一种解…

Android SQLite

一、使用SQLiteOpenHelper类创建数据库与版本管理 1、nCreate(database):首次使用软件时生成数据库表 2、onUpgrade(database,oldVersion,newVersion):在数据库的版本发生变化时会被调用&#xff0c; 一 般 在软件升级时才需改变版本号&#xff0c;而数据库的版本是由…

20240328-2-随机森林面试题RandomForest

随机森林面试题 1. 简单介绍随机森林 一种基于树模型的Bagging的优化版本&#xff0c;一棵树的生成肯定还是不如多棵树&#xff0c;因此就有了随机森林&#xff0c;解决决策树泛化能力弱的特点。 多次随机取样&#xff0c;多次随机取属性&#xff0c;选取最优分割点&#xff…

在Vue3中如何使用H.265视频流媒体播放器EasyPlayer.js?

H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器&#xff0c;可支持多种流媒体协议播放&#xff0c;可支持H.264与H.265编码格式&#xff0c;性能稳定、播放流畅&#xff0c;能支持WebSocket-FLV、HTTP-FLV&#xff0c;HLS&#xff08;m3u8&#…

【uniapp踩坑记】——微信小程序转发保存图片

关于微信小程序转发&保存图片 微信小程序图片转发保存简单说明网络图片的转发保存base64流形式图片转发保存 已经好多年没写博客了&#xff0c;最近使用在用uniapp开发一个移动版管理后台&#xff0c;记录下自己踩过的一些坑 吃相别太难看&#xff0c;搞一堆下头僵尸号来点…

【YOLOv9】使用yolov9训练自己的数据集/验证 /推理 /参数分析

完胜V8的SOTA模型Yolov9(论文阅读笔记)内容 点击即可跳转 当今的YOLO系列武林盟主YOLOV9&#xff1a; YOLOv9的优秀表现&#xff1a; 环境&#xff1a; ubuntu20.04&#xff0c;无GPU&#xff0c;使用anaconda3创建的虚拟环境yolov9。 环境安装&#xff1a; conda create -n …

JavaSE图书管理系统

JavaSE图书管理系统 思路一.Main方法二.User包1.User类2.NormaUser类3.AdminUser类三.book包1.BookList类2.Book类四.operation包1.IOPeration接口2.AddOperation类新增图书3.BorrowOperation类借阅图书4.DelOperation类删除图书5.FindOperation类查找图书6.ReturnOperation类归…

Centos7配置IP地址

1、找到网卡名字 使用root用户登陆&#xff0c;输入命令 ifconfig 2、打开配置文件 输入命令&#xff0c;打开配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33 3、添加IP地址 3.1修改BOOTPROTO 将“BOOTPROTOdhcp” 改为 “BOOTPROTOstatic” 3.2添加IP地址 在配…

【JavaEE多线程】从单例模式到线程池的深入探索

目录 多线程案例单例模式阻塞队列定时器线程池总结-保证线程安全的思路对比线程和进程 多线程案例 单例模式 单例模式是一种设计模式 设计模式&#xff0c;就是程序员的棋谱&#xff0c;这里介绍了很多典型场景&#xff0c;以及典型场景的处理方式&#xff0c;按照设计模式写…

火车头采集一键发布到Zblog

火车头采集发布到Zblog系统&#xff0c;主要操作步骤如下&#xff1a; 目录 1、Zblog火车头Web发布模块 2、内容发布参数映射&#xff0c;火车头发布到Zblog 3、简数一键发布到Zblog方法 1、Zblog火车头Web发布模块 自行编写Zblog火车头Web发布模块&#xff0c;一般要使用f…

Linux--进程间的通信--进程池

进程间的通信–匿名管道 进程池的概念 进程池是一种将多个进程组织起来以执行特定任务的机制。它由多个预先创建好的资源进程和一个管理进程组成。这些资源进程被管理进程负责分配和调度&#xff0c;用于处理任务。 当有新的任务提交时&#xff0c;管理进程会从进程池中取出一…

2024北京门窗展|2024北京门窗展会|2024北京门窗展览会

CWE中国&#xff08;北京&#xff09;国际系统门窗及幕墙博览会 CWE China&#xff08;Beijing&#xff09;International System Doors Windows and Curtain Walls Expo 2024年8月29-31日 北京&#xff0c;中国国际展览中心顺义馆 展会概况&#xff1a; 2024年CWE中国&…

【Unity】ScriptableObject 在游戏中的使用实例

ScriptableObject 在游戏中的使用实例 ScriptableObject 使用指南Unity 存储游戏数据的几种方法Unity ScriptableObject实例创建一个物品管理的ScriptableObject创建一个管理所有 ScriptableObject 的数据库&#xff08;ItemDBSO&#xff09; ScriptableObject 使用指南 Scrip…