Vue3中vite.config.js文件相关配置和mock数据配置

news2024/11/17 3:55:41

文章目录

  • 1. vite.config.js文件相关配置
  • 2. 路径别名
  • 3. mock数据配置


1. vite.config.js文件相关配置

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import path from 'path'

// https://vitejs.dev/config/
export default defineConfig({
  // 插件,vue就是以插件的方式集成到vite工具中
  plugins: [vue(), vueJsx({
    // 默认只对扩展名为 .jsx/.tsx 进行babel解析
    // 需要需要它解析.vue扩展名下面的jsx
    // include: /\.[jt]sx/
    // include: /\.[jt]sx|vue/
  })],
  // 添加别名
  resolve: {
    alias: {
      '@': path.resolve('src')
    }
  },
  server: {
    // 配置端口
    port: 8080,
    // 自动打开浏览器
    open: false,
    // 通过配置开发时,代理服务器,在开发时进行跨域解决
    proxy: {
      '/api': {
        target: 'https://api.iynn.cn/film',
        // 改变请求头源地址
        changeOrigin: true,
        // 重写,如果目标地址中存在 /api,就将 /api 替换为空字符串
        // rewrite: path => path.replace(/^\/api/, '')
        // rewrite: path => { }
      }
    }
  }
})

上面已经完成了跨域相关的配置,现在我们来试着发起网络请求。

父组件:

<template>
  <div>
    <child :films="films" />
  </div>
</template>

<script setup>
import { onMounted, ref } from 'vue'
import axios from 'axios'
import child from '@/components/child.vue'

const films = ref([])

onMounted(async () => {
  let ret = await axios.get('/api/v1/getNowPlayingFilmList?cityId=110100&pageNum=1&pageSize=10')
  films.value = ret.data.data.films
})
</script>

<style lang="scss" scoped></style>

子组件:

<template>
  <div>
    <h3>child组件中</h3>
    <ul>
      <li v-for="item of films" :key="item.filmId">{{ item.name }}</li>
    </ul>
  </div>
</template>

<script setup>
defineProps(['films'])
</script>

<style lang="scss" scoped></style>

除了上面的配置方法以外,我们还可以将网络配置添加到开发环境中,就像下面这样:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import path from 'path'

// export default defineConfig((command, mode, ssrBuild) => {
export default defineConfig(({ mode }) => {
  let config = {
    plugins: [vue(), vueJsx()],
    // 添加别名
    resolve: {
      alias: {
        '@': path.resolve('src')
      }
    }
  }

  // 开发环境中添加网络代理
  if ('development' === mode) {
    // 开发环境
    config = {
      ...config,
      server: {
        // 配置端口
        port: 8080,
        // 自动打开浏览器
        open: false,
        // 通过配置开发时,代理服务器,在开发时进行跨域解决
        proxy: {
          '/api': {
            target: 'https://api.iynn.cn/film',
            changeOrigin: true
          }
        }
      }
    }
  }

  return config
})

在这里插入图片描述

2. 路径别名

在 vite.config.js 中配置:

import { resolve } from 'path'

export default defineConfig({
  resolve: {
    alias: {
      '@': resolve('src')
    }
  }
})

在 jsconfig.json 或 tsconfig.json 中配置:

{ 
  "compilerOptions": {
    "baseUrl": "./",
    "paths": {
        "@/*": ["src/*"]
    }
  },
  "exclude": ["node_modules", "dist"]
}

3. mock数据配置

安装:

yarn add vite-plugin-mock mockjs -D

在 vite.config.js 中配置:

import { viteMockServe } from 'vite-plugin-mock'

export default defineConfig({
  plugins: [vue(), viteMockServe({})],
})

在项目根目录下面创建目录 mock,创建文件 mock/index.js:

import Mockjs from 'mockjs'

const mockData = [
  {
    url: '/api/films',
    method: 'get',
    response: ({ query }) => {
      const data = Mockjs.mock({
        'films|10': [
          {
            "filmId|+1": 1,
            'name': '@cname'
          }
        ]
      })
      return {
        code: 0,
        msg: 'ok',
        data
      }
    }
  }
]

export default mockData

App.vue:

<template>
  <div>
    <ul>
      <li v-for="item of films" :key="item.filmId">{{ item.name }}</li>
    </ul>
  </div>
</template>

<script setup>
import { onMounted, ref } from 'vue'
import axios from 'axios'

const films = ref([])

onMounted(async () => {
  let ret = await axios.get('/api/films')
  films.value = ret.data.data.films
})
</script>

<style lang="scss" scoped>

</style>

在这里插入图片描述

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

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

相关文章

简单的股票行情演示(二) - AKShare

一、概述二、环境搭建三、使用总结 1、API文档2、数据字典3、效果截图4、后台服务四、相关文章原文链接&#xff1a;简单的股票行情演示&#xff08;二&#xff09; - akshare 一、概述 上一篇文章简单的股票行情演示&#xff08;一&#xff09; - 实时标的数据中讲述了从新浪…

web前端期末大作业 HTML+CSS+JavaScript仿安踏

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 在线商城购物 | 水果商城 | 商城系统建设 | 多平台移动商城 | H5微商城购物商城项目 | HTML期末大学生网页设计作业&#xff0c;Web大学生网页 HTML&a…

连续仨月霸占牛客榜首,京东T8呕心巨作:700页JVM虚拟机实战手册

什么是Java虚拟机 虚拟机是一种抽象化的计算机&#xff0c;通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构&#xff0c;如处理器、堆栈、寄存器等&#xff0c;还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息&#xff0c…

Linux下 生成coredump文件

一. coredump文件路径 网上很多博文说到 coredump 文件默认会在默认的目录下生成。 按照网上很多的说法&#xff0c;再运行程序就会生成core文件&#xff0c;一般路径和可执行程序一个路径。 但是&#xff0c;我尝试在 ubuntu20.04系统下&#xff0c;怎么也找不到去哪里了&a…

设计模式之美——KISS、YAGNI原则

KISS 原则算是一个万金油类型的设计原则&#xff0c;可以应用在很多场景中。它不仅经常用来指导软件开发&#xff0c;还经常用来指导更加广泛的系统设计、产品设计等&#xff0c;比如&#xff0c;冰箱、建筑、iPhone 手机的设计等等。 我们知道&#xff0c;代码的可读性和可维…

ASIFT算法过程实现 --- 配置避坑指南

常规的SIFT算法进行图像匹配的时候,只能进行两个摄像机夹角比较小的(最大是15),拍摄的图像进行相机的图像匹配,但是针对于相机之间的夹脚比较大的时候,上述的算法匹配就是会出现问题.为了解决上面的这个问题,使用了一种改进的算法匹配方式ASIFT算法进行匹配.具体这种算法的优点…

MYSQL进阶(2)

删除索引:drop Index indexName on tableName; B树叶子结点和非叶子节点都存在数据&#xff0c;那么当数据量很大的时候&#xff0c;把索引加载起来就需要很长时间 联合索引: 1)定义:是给一张表上面的多个列增加索引&#xff0c;也就是说给表上面的多个列增加索引&#xff0c;供…

MongoDB聚集分析

文章目录 聚集操作管道模式聚集MapReduce 聚集简单聚集函数小结聚集操作 聚集操作是对数据进行分析的有效手段。MongoDB 主要提供了三种对数据进行分析计算的方式:管道模式聚集分析、MapReduce聚集分析、简单函数和命令的聚集分析。 管道模式聚集 这里所说的管道类似于UNIX…

2022 APMCM亚太数学建模竞赛 C题 全球是否变暖 思路及代码实现(持续更新中)

2022 APMCM亚太数学建模竞赛 C题 全球是否变暖 思路及代码实现(持续更新中) 1 题目 全球变暖与否? 加拿大49.6C的高温为地球北纬50以上地区创造了新的气温记录&#xff0c;一周内就有数百人死于高温;美国加利福尼亚州死亡谷54.4C&#xff0c;是地球上有记录以来的最高温度;科…

Ubuntu 16.4虚拟机 配置Hadoop集群

Ubuntu 16.4 配置Hadoop集群总体步骤环境说明虚拟机配置java安装hadoop安装与配置克隆虚拟机ssh安装使用&#xff0c;免密登录更改hadoop配置结束语总体步骤 1、虚拟机配置 2、java安装 3、hadoop下载配置 4、复制虚拟机 5、ip更换&#xff0c;使用固定ip&#xff0c;并且每台…

Linux基本指令集合

Linux基本指令1&#xff0c;ls命令2&#xff0c;pwd命令3&#xff0c;whoami4&#xff0c;cd命令5&#xff0c;touch命令6&#xff0c;mkdir命令7&#xff0c;rmdir与rm命令8&#xff0c;man命令9&#xff0c;cp命令10&#xff0c;tree命令11&#xff0c;mv命令12&#xff0c;c…

智慧城市的发展趋势

智慧城市&#xff0c;是指在城市发展过程中&#xff0c;在城市基础设施、资源环境、社会民生、经济产业、市政治理领域中&#xff0c;充分利用物联网、互联网、云计算、IT、智能分析等技术手段&#xff0c;对城市居民生活工作、企业经营发展和政府行政管理过程中的相关活动&…

HTML学生个人网站作业设计:我的家乡网站设计——南宁留言表单 无js 页面8个

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 家乡旅游景点 | 家乡民生变化 | 介绍自己的家乡 | 我的家乡 | 家乡主题 | HTML期末大学生网页设计作业 HTML&#xff1a;结构 CSS&#xff1a;样式 在…

泰克/Tektronix A622电流探头型号规格参数介绍

Tektronix/泰克电流探头A622产品介绍 品牌&#xff1a;Tektronix 产地&#xff1a;美国 Tektronix泰克A622交直流电流探头适用于万用表和示波器钳型;通用BNC接口。 Tektronix/泰克电流探头A622产品特点&#xff1a; AC/DC-100kHz 50mA to 100A峰值 适用于万用表和示波器 钳形开…

HTML期末大学生网页设计作业——奇恩动漫HTML (1页面) HTML+CSS+JS网页设计期末课程大作业

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ⚽精彩专栏推荐&#x1…

C++:函数:回调函数:还不懂回调函数来捶我

前言 不知道你是否有这样的疑问&#xff0c;我们为什么需要回调函数&#xff0c;直接调用函数不就可以了吗&#xff1f;回调函数到底有什么用&#xff1f;程序员该如何理解回调函数了&#xff1f; 这篇文章就为你解答这些问题&#xff0c;读完这篇文章后&#xff0c;你的编程…

连接肠菌与宿主的桥梁:肠菌代谢物——肠菌功能研究新篇章

人的肠道内寄居着多种微生物&#xff0c;他们统称为肠道菌群。研究表明&#xff0c;肠道菌群失衡会导致多种人体疾病&#xff0c;包括糖尿病、肿瘤、心血管疾病、神经系统疾病等。 那么肠菌是怎么对人产生影响的呢&#xff1f;答案是肠菌产生的代谢物&#xff08;1, 2&#xf…

Vue3+nodejs全栈项目(资金管理系统)——后端篇(一)登录、注册

文章目录初始化创建项目配置跨域配置解析表单数据的中间件安装bodyparser初始化用户路由模块抽离用户路由模块中的处理函数登录注册新建admin表安装并配置mysql模块注册检测表单数据是否合法检测用户名是否被占用对密码进行加密处理bcryptjs插入新用户测试登录根据名字查询用户…

CDH6.3.2处理Zookeeper因未授权访问造成的漏洞

1.zookeeper的基本情况 zookeeper是分布式协同管理工具&#xff0c;常用来管理系统配置信息&#xff0c;提供分布式协同服务。zookeeper官网下载软件包&#xff0c;bin目录下有客户端脚本和服务端脚本。另外还有个工具对理解和使用zookeeper服务非常有用&#xff0c;即zk-ui&am…

文本层次语义元素

html5-文本层次语义元素 第1关_文本层次语义元素相关概念 第2关_文本层次语义元素 编程要求 在右侧编辑器中的Begin - End区域内补充代码&#xff0c;具体要求是&#xff1a; 1.运用HTML5中的语义化元素设计一个文章区(<article>)。 2.文章区中的头部为文章的标题&a…