vue3+ts遇到的小问题

news2024/11/20 4:26:57

插件volar安装了没有提示。

解决:1. 检查是或否是最新的版本,是的话进入拓展设置,所有的选项都勾选
在这里插入图片描述
在这里插入图片描述
2. 还是不行就要更新vscoe了。一般的话会在力捕抓到一个错误。跟新就好了 在这里插入图片描述

TypeScript intellisense is disabled on template. To enable, configure "jsx": "preserve" in the "compilerOptions" property of tsconfig or jsconfig. To disable this prompt instead, configure "experimentalDisableTemplateSupport": true in "vueCompilerOptions" property.volar

解决:
打开jsx设置
在这里插入图片描述
如果你装了eslint刚开始会也会红线提示
解决:
在这里插入图片描述
“vue/multi-word-component-names”: “off”

配置代理

vite.config.ts

export default defineConfig({

 server: {
    proxy: {
      '/api': {
        target: 'http://101.43.207.24:1190',
        rewrite: (path) => path.replace(/^\/api/, ''),
        changeOrigin: true
      },
      // '/storage/file': {
      //   target: '目标服务器2'
      // }
    }
  },
  })

eslint 配置文件出现报错

在这里插入图片描述
解决:
‘env’: {
‘browser’: true,
‘es2021’: true,
‘node’: true
},
‘extends’: [
‘eslint:recommended’,
‘plugin:vue/vue3-essential’
],
在这里插入图片描述

vite3.0区分不同的环境

解决:使用import.meta.env.VITE_SOME_KEY
文档指出只有VITE_开头的变量才会显示,其他都是undefined

类型“ImportMeta”上不存在属性“env”。

在 tsconfig.json 文件中添加如下配置即可
“types”: [ “vite/client” ]

vue3中的less使用ts的变量

v-bind

js-cookie刷新一次就在原有的token再新加一个token

从执行的步骤来看,刷新页面一次。就会执行一次封装的setTokne方法,所以加上判断旧可以了

import { defineStore } from 'pinia'
import { Names } from '../storeNamespace'
import Cookies from 'js-cookie'

const cookiesStorage: Storage = {
  setItem (key, state) {
  // 加上判断
    if (Cookies.get('token')) return
    return Cookies.set('token', state, { expires: 3 })
  },
  getItem (key) {
    return JSON.stringify({
      token: Cookies.get('token')
    })
  }
}
// import {UserInfo} from '@/@type/store'
// Names.User 就是本地存储的名称
export const useStore = defineStore(Names.User, {
  state: () => {
    return {
      token: '',
      table: [] as Array<number>
    }
  },
  persist: {
    enabled: true, // 开启存储
    // **strategies: 指定存储位置以及存储的变量都有哪些,该属性可以不写,不写的话默认是存储到sessionStorage里边,默认存储state里边的所有数据**
    strategies: [
      {key:'token', storage: cookiesStorage, paths: ['token'] }
      // storage 存储到哪里 sessionStorage/localStorage
      // paths是一个数组,要存储缓存的变量,当然也可以写多个
      // paths如果不写就默认存储state里边的所有数据,如果写了就存储指定的变量
    ]
  },
  //类似于computed 可以帮我们去修饰我们的值
  getters: {},
  //可以操作异步 和 同步提交state
  actions: {
    setToken(token:string) {
      this.token = token
    }
  }
})

vue-router4.x报错 api.now is not a function 的解决方法

重启/重新安装 vue-develo工具

发布线上,静态图片没有加载

发到线上没有这个图片
在这里插入图片描述
原因
vite 官方默认的配置,如果资源文件在assets文件夹打包后会把图片名加上 hash值,但是直接通过 :src="imgSrc"方式引入并不会在打包的时候解析,导致开发环境可以正常引入,打包后却不能显示的问题
在这里插入图片描述
解决:


// 获取assets静态资源
const getAssetsHomeFile = (root:string,url: string) => {
  return new URL(`../assets/${root}/${url}`, import.meta.url).href
}
export default getAssetsHomeFile`

配置404页面

{
    path: '/:pathMatch(.*)',
    name: 'MError',
    component: MError,
    meta: { title: '404' }
  }
  

覆盖ui库的一些默认样式

使用 /deep/

setup如果要使用await关键字需要在生命周期钩子函数里面使用

解决:

onMounted( async () => {
  const data = await getChartList({})
  // const a = data.data.year.reduce((pre,cur) => {
  //   return pre.concat(cur)
  // },[])
  // console.log(a)
  initChart(pros.chartID, option)
})

解决 元素隐式具有 “any“ 类型,因为类型为 “string“ 的表达式不能用于索引类型 “Object“。 在类型 “Object“ 上找不到具有类型为 “string“ 的参数的索引签名

在这里插入图片描述
解决:
定义一个接口

interface DAMNU_ENABLE {
    ....
    [key: string]: boolean, // 字段扩展声明
}; 

[key: string]: boolean, // 字段扩展声明 声明之后可以用方括号的方式去对象里边的值

或者方法

export function isValidKey(
  key: string | number | symbol,
  object: object
): key is keyof typeof object {
  return key in object
}

值传递的代码

const assignmentFiel = (obj:object) => {
  for (const key in obj) {
    obj[key] = goods.FromRowitem[key]
  }
  return obj
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【简陋Web应用2】人脸检测——基于Flask和PaddleHub

文章目录&#x1f6a9; 前言&#x1f33a; 效果演示&#x1f966; 分析与设计&#x1f349; 实现&#x1f36c; 1. 部署人脸检测模型&#x1f36d; 2. 使用Flask构建app2.1 目录结构2.2 forms.py2.3 utils.py2.4 app.py2.5 index.html&#x1f95d; Bug(s)&#x1f6a9; 前言 本…

Vue根据网络文件路径下载文件【自定义属性 v-down】

Vue根据网络文件路径下载文件【v-down】标准使用方式企业级Vue开发集成(全局挂载)1.src目录下创建directive文件夹&#xff08;存在则忽略&#xff09;2.down.js文件3.directive根目录创建index.js文件4.main.js 注册自定义属性全局挂载提到下载文件大家首先肯定会想到 模拟点击…

vue2 使用 cesium 篇 【第一篇】

vue2 使用 cesium 篇 今天好好写一篇哈&#xff0c;之前写的半死不活的。首先说明&#xff1a;这篇博文是我边做边写的&#xff0c;小白也是&#xff0c;实现效果会同时发布截图&#xff0c;如果没有实现也会说明&#xff0c;仅仅作为技术积累&#xff0c;选择性分享&#xff0…

面试官:“ES6中新增的Set方法去重你会吗?”我:“看文章就知道了”

赶快悄悄的努力起来吧,不苒在这里衷心祝愿各位大佬都能顺利通过面试。 面试专栏分享,感觉有用的小伙伴可以点个订阅,不定时更新相关面试题:面试专栏 。 文章目录 Set 的基本使用🍔前言🍏正文1. Set1.1 Set的基本使用1.2 Set 常见的属相和方法1.3 应用场景:使用Set对数…

vue组件通信2 | 父子组件通信v-model

引言&#xff1a;最近项目在vue2 升级vue3 &#xff0c;在这个过程中发现v-model 的变化最大。同时也发现了对于v-model 的不熟悉。 因此&#xff0c;本文从文档、vue2的使用方法、vue2 tsx 的使用方法、vue3的使用方法、使用场景来试图探究一下v-model。 一、文档及vue2中 v-…

vue页面刷新

vue页面刷新 首先我们都知道vue属于单页面应用&#xff0c;默认境况下是不会触发刷新页面操作的&#xff0c;所以这个时候就需要我们通过事件来触发reload()来达到刷新操作 接下来我就为大家介绍三种刷新页面的方法 1. wiindow.location.reload([bForceGet])该方法强迫浏览…

vue中组件的name属性含义与用法

vue中组件的name属性含义与用法 name属性&#xff1a;只有作为组件选项时起作用&#xff0c;用来注册组件名 1、注册组件名 局部注册组件&#xff0c;语法&#xff1a;export default{ components:{"组件名":组件对象}} 其中&#xff0c;"组件名"注册方…

从0搭建Vue3组件库(五): 如何使用Vite打包组件库

本篇文章将介绍如何使用 vite 打包我们的组件库,同时告诉大家如何使用插件让打包后的文件自动生成声明文件(*.d.ts) 打包配置 vite 专门提供了库模式的打包方式,配置其实非常简单,首先全局安装 vite 以及vitejs/plugin-vue pnpm add vite vitejs/plugin-vue -D -w 在 componen…

基于Vue+Nodejs实现宿舍管理系统

​ 作者主页&#xff1a;编程指南针简介&#xff1a;Java领域优质创作者、CSDN博客专家 Java项目、简历模板、学习资料、面试题库、技术互助文末获取源码​ 项目编号&#xff1a;BS-QD-002 主要需求&#xff1a; 学生信息录入、修改、删除、查询宿舍管理评分学生早起率、懒…

js之promise

##### 仅做记录复习使用 #### 数据有点混乱 暂时不要看 promise promise是一个对异步操作进行封装并返回其结果的构造函数. 使代码更加简洁和避免回调地狱。 promise是浏览器引擎自带的&#xff08;但不是所有浏览器都支持promise&#xff09; promise的参数是一个函数且…

全网详细解决Set-Location : 找不到接受实际参数“xxx”的位置形式参数。 所在位置 行:1 字符: 1的错误,并深究该错误的原因。

文章目录1. 复现错误2. 分析错误3. 解决问题4. 文末总结1. 复现错误 今天使用PowerShell从C:\Users\baoya>目录切换到C:\Program Files\MySQL\MySQL Server 5.7\bin时&#xff0c;却报出如下图的错误&#xff1a; 即找不到接受实际参数“Files\MySQL\MySQL”的位置形式参数。…

vue最易理解且详细的调用swiper插件

我们最开始接触的是在操作dom时候的时候引入swiper,那么这次我就用之前的文档来教你在vue中如何调用swiper. 我们之前看的是swiper教程 那么我根据上面的教程一步一步来教你使用 1.首先创建好swiper组件.写好template 里面的标签内容(当然这里写了个插槽为了以后方便动态插入…

【跨域】一篇文章彻底解决跨域设置cookie问题!

一篇文章彻底解决跨域设置cookie问题&#xff01; 大家好我是雪人~~⛄ 之前做项目的时候发现后端传过来的 SetCookie 不能正常在浏览器中使用。 是因为谷歌浏览器新版本Chrome 80将Cookie的SameSite属性默认值由None变为Lax。 接下来带大家解决该问题。 原理讲解 我们可以看到…

Java - token的存储与获取

1. 获取token的工具类 问&#xff1a;为什么写工具类呢&#xff1f;&#xff1f;&#xff1f; 答&#xff1a;因为我们不知道前端将token怎么存储的&#xff0c;所以我们可以通过调用Token工具类来获取token。Token工具类会检查header、URL中的属性值、以及Cookie等等&#xff…

快速生成Vue2或者vue3模板

1.点击文件&#xff0c;再点击首选项&#xff0c;然后选择用户片段&#xff1b; 2.在弹出来的输入框中&#xff0c;选择第一行vue.json或者第二行新建全局代码片段文件都可&#xff0c;都是为了打开vue.json文件&#xff1b; 3.把下面代码复制到vue.json文件里&#xff0c;然后…

vue3搭建教程(基于vite+create-vue+ element-plus)

前言2021年8月5日&#xff0c;Vue正式发布3.2版本&#xff0c;同时&#xff0c;Vue的作者尤雨溪还在个人微博称&#xff1a;“ < script setup > TS Volar 真香 ”&#xff1b;2022年1月22日&#xff0c;Vue官方宣布Vue3成为了新的默认版本。如今的Vue3已经势不可挡&a…

【JavaScript-进阶】详解数据类型,内存分配,API元素对象获取

目录 前言 1.数据类型 1.简单数据类型和复杂数据类型 2.堆和栈 2.webApi 1.API 2.DOM是啥&#xff1f; 3.如何获取元素&#xff1f; 1.根据ID获取 ​编辑 2.根据标签名获取 3.通过HTML5新增的方法获取 4.特殊元素获取(body,html) 总结 前言 祝大家中秋节快乐…

Vue 实现简单的时间轴 时间进度条

项目需要按天播放地图等值线图功能&#xff0c;所以需要一个时间进度条&#xff0c;网上找了一下发现没有自己需要的样子&#xff0c;于是只能简单的写一个。 1、封装时间尺度组件 <!-- 时间尺度 --> <template><div class"time"><div class&…

vue动态改变元素样式详解

目录1 前言2 动态改变样式的方法2.1 操作元素class列表2.2 操作元素内联样式3 小结1 前言 在vue项目中&#xff0c;很多场景要求我们动态改变元素的样式&#xff0c;比如按钮由不可点击到可以点击样式改变&#xff0c;这种情况下&#xff0c;我们通常根据vue框架提供的动态绑定…

vue3的ref,reactive的使用和原理解析

目录 1.前言 2.比较 3.ref源码解析 4.reactive源码解析 createReactiveObject handles的组成 get陷阱 set陷阱 5.总结 1.前言 vue3新增了ref&#xff0c;reactive两个api用于响应式数据&#xff0c;Ref 系列毫无疑问是使用频率最高的 api 之一,响应式意味着数据变动&…