vue3.0+ts+elementplus开发后台系统遇到的问题总结

说明:
   
  搭建项目用的是vue/cli4, vue@3.4, elementplus@2.3, ts@4.1, 边写项目, 边学习vue3.0, 边汇总遇到的问题,版本不同、书写方式不同(例如: 格式setup(props, context),或者<script setup>), 问题与解决方案可能有误差,而且ts的引入也会有一些新的要求去满足(比如:vue3获取ref实例结合ts的InstanceType), 读者有问题欢迎留言,一起探讨.

项目中用到的语法格式

<script lang="ts">

export default defineCComponent({

    setup(props, context){

            return {}

    }

})

</script>

1、在vue中报export ‘default‘ (imported as ‘Vue‘) was not found in ‘vue 

代码格式:

报错:

我安装的vue/cli版本是@vue/cli 4.5.13, 引用文件如下图:

cli3中是通过 import vue from ‘vue’的格式引入.

解决2中思路:
(1) 使cli4的格式
(2) uninstall cli4, 安装cli3


2、手动配置vuex、router, v2与v3差异化
      v3使用专门的api, v2需要手动实例化


3、手动安装element-plus

main.ts中引入格式如下

     错误提示:
This dependency was not found:
 * element-plus/lib/theme-chalk/index.css in ./src/main.ts
 To install it,
you can run: npm install --save element-plus/lib/theme-chalk/index.css

解决办法:
我去element-plus官网查询,发现其已经将其进行修改【第二行代码】

运行正常.


4、

解决方案:https://blog.csdn.net/qq_54139028/article/details/126698066
我在项目中应用了elment-plus, 报错的是引用在el-form表单中的变量,提示属性不存在, 在项目中使用以上方法未生效.


5、vue解决less-loader报错this getOptions is not a function 

     原因:less-loader的版本太高了,webpack与less-loader的版本兼容导致的

解决方案:

下载高版本: npm uninstall less less-loader

重新安装低版本

npm install less@3.9.0 less-loader@5.0.0 --save-dev


6、vue提示Already included file name '.../components/TagsView.vue' differs from file name

明明引入的文件名和地址都是正确的,但是还是报错误

解决方案:
把文件名的后缀vue去掉
把路径前面的点改成@

在子组件中加载子组件依然存在这个问题,对了,我懒得配置ts.config.json,因为我的组件路径比较深,配置后并不方便,重要的是页面正常显示且组件引入使用相对路径查找更方便.

紧接着会出现问题7


7、Cannot find module '@/components/nav/component/navleft/Navleft' or its corresponding type declarations.Vetur(2307)

原因: 当script 标签上加上lang="ts" 时就会出现这个问题。因为tsconfig.json 没有配置


8、子组件加载成功,但是不显示子组件内容,组件高度为0

子组件需要写在components里


9、element-plus去掉el-dropdown 点击之后显示的蓝色边框

解决方案

参考:https://www.jianshu.com/p/24e7d4f5b50d


10、修改packge.json文件的name属性报错

npm ERR! Invalid name: "后台管理系统"

npm ERR! A complete log of this run can be found in:

npm ERR! /Users/apple/.npm/_logs/2023-09-05T11_52_59_602Z-debug.log

name属性不能是中文

参考:https://blog.csdn.net/weixin_45711931/article/details/130399946


11、更改项目标题的方式

vue.config.js配置chainWebpack

参考:https://zhuanlan.zhihu.com/p/570272839


12、关闭any警告

警告:

warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any

解决:eslintrc.js文件添加rules配置

  添加完成之后,重新运行项目即可

参考:https://blog.csdn.net/weixin_42744724/article/details/128898447


13、

Argument 'state' should be typed with a non-any type.
eslint@typescript-eslint/explicit-module-boundary-types(parameter) state: any

解决方案:
写接口定义state类型


14、elementPlus中icon的使用
 参考:官网关于icon的用法,结合component的is属性动态渲染icon


15、vue3中各个钩子的使用
参考:https://www.python100.com/html/3RS6K3NT85N3.html


16、ref的使用

使用ref函数定义一个变量,ref扩号里是变量的初始值

 import { ref } from 'vue'
    let conter=ref(0)
    let arr=ref(['我是字符串'])

template里的用法

<button @click="conter++">{{conter}}</button>
 <div v-for="item in arr">  
    <p>{{item}}</p>
 </div>

js里的用法

function add(){
     conter.value++
     console.log(conter)
      arr.value.push('耗子尾汁')
}


17、vue3.0 区分生产环境,测试环境,正式环境

1.在根目录下新建.env.xxx文件

2、不同环境配置

测试环境

开发环境

生产环境

文件中根据 process.env.NODE_ENV 来区分不同环境,设置不同域名

3、输出目录配置
      通过  process.env.outputDir 直接获取

4、 如果分测试环境和正式环境,npm run build时会打包两次。修改根目录下的 package.json

// 在scripts中加入以下代码
--mode production  // 打包正式环境
--mode development // 打包开发环境
--mode test  // 打包测试环境

拓展:https://www.jianshu.com/p/3917d97f8b96


18、node版本管理nvm配置过程遇到的问题
      mac已安装node的卸载
      nvm提示安装失败
      nvm安装成功和重启终端后两种情况zsh终端报错  zsh: command not find:nvm

     解决方案参考我的另一个文章: https://www.jianshu.com/p/8f79fa2fe035


19、vue 运行报错 TypeError: Cannot read property 'upgrade' of undefined

原因:vue.config.js中devServer设置了proxy,但target为空,将target设置一个地址即可。

解决方案: target 设置成非空


20、vue中的hooks

hooks就是函数的一种写法,就是将文件中一些单独功能的js代码抽离出来,放到单独的js文件中,或者说是一些公共的功能或者方法.vue3.0中的hooks跟vue2.0中的mixin有点类似,相比较hooks更清晰复用代码的来源,更清晰易懂.


21、vue3.0中使用ref来调用子组件实例(vue3获取ref实例结合ts的InstanceType)
          参考: https://www.jb51.net/javascript/2953413t9.htm
        父组件定义ref绑定子组件时候,InstanceType很重要()

(1)< script setup >通过ref获取子组件的值或方法。(我的项目中未实践)

关于defineExpose的使用 
       defineExpose: 子组件使用defineExpose暴露变量或者方法给父组件
       defineExpose的变量在子组件一定也要return

(2)setup()通过ref获取子组件值 (我的项目中使用的是这种方式)
     子组件

父组件

22、vue3 defineEmits的使用
参考:https://blog.csdn.net/weixin_47228574/article/details/128144067

23、vue3.0中使用nextTick
参考:https://blog.csdn.net/qq_41619796/article/details/118996974


24、.eslintrc.js文件中【globals】下配置【defineEmits: true】

25、vue3中setUp函数的2个参数详解
   参考: https://blog.51cto.com/u_12553473/5642509


26、vue3.0监听props
   参考: https://blog.csdn.net/LJJ_3/article/details/119117788





vue3.0+ts+elementPlus后台系统, 源码地址 https://git@github.com:wangAlisa/vue3.0-ts-elementPlus.git

持续更新中

网上搜罗来的:
http://www.taodudu.cc/news/show-5155435.html?action=onClick
https://juejin.cn/post/7006108454028836895

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容