首页 > 其他分享 >Nuxt.js必读:轻松掌握运行时配置与 useRuntimeConfig

Nuxt.js必读:轻松掌握运行时配置与 useRuntimeConfig

时间:2024-07-29 18:25:26浏览次数:11  
标签:cmdragon URL app useRuntimeConfig js Nuxt


title: Nuxt.js必读:轻松掌握运行时配置与 useRuntimeConfig
date: 2024/7/29
updated: 2024/7/29
author: cmdragon

excerpt:
本文详细介绍了Nuxt.js中的运行时配置功能,包括定义和使用运行时配置的方法,以及如何通过useRuntimeConfig访问配置。同时,讲解了环境变量与.env文件的使用,特别是在不同环境下的配置管理。

categories:

  • 前端开发

tags:

  • Nuxt.js
  • 运行时配置
  • Vue.js
  • SSR
  • 环境变量
  • .env文件
  • useRuntimeConfig

2024_07_29 17_49_17.png

freecompress-cmdragon_cn.png

扫描二维码关注或者微信搜一搜:编程智域 前端至全栈交流与成长

Nuxt.js 是一个基于 Vue.js 的框架,它极大地简化了服务端渲染(SSR)和静态站点生成的开发过程。在 Nuxt.js 中,运行时配置是一个强大的功能,允许开发者根据不同的环境(如开发、生产等)动态地调整配置。

一、什么是运行时配置?

运行时配置是 Nuxt.js 中的一个特性,它允许你在不同的环境下使用不同的配置。例如,你可能需要在一个环境中使用一个 API 基础 URL,而在另一个环境中使用另一个 URL。运行时配置可以让你轻松实现这一点。

二、如何定义运行时配置?

在 Nuxt.js 中,你可以在 nuxt.config.ts 文件中定义运行时配置。以下是一个简单的例子:

export default defineNuxtConfig({
  runtimeConfig: {
    // 私有密钥,仅在服务器端可用
    apiSecret: '123',

    // 公共密钥,可以在客户端和服务器端访问
    public: {
      apiBase: process.env.NUXT_PUBLIC_API_BASE || '/api'
    }
  }
})

在这个例子中,apiSecret 是一个私有密钥,仅在服务器端可用。apiBase 是一个公共密钥,可以在客户端和服务器端访问。

三、如何使用 useRuntimeConfig

useRuntimeConfig 是一个组合函数,用于在组件或 API 接口中访问运行时配置。以下是如何在组件中使用它的示例:

<template>
  <div>
    <h1>API Base URL: {{ config.public.apiBase }}</h1>
  </div>
</template>

<script>
export default {
  setup() {
    const config = useRuntimeConfig()
    return {
      config
    }
  }
}
</script>

在服务器端 API 中,你可以这样使用 useRuntimeConfig

export default defineEventHandler((event) => {
  const config = useRuntimeConfig(event)
  // 使用配置
})

四、环境变量与 .env 文件

你可以在 .env 文件中设置环境变量,以便在开发和构建过程中访问它们。例如:

NUXT_PUBLIC_API_BASE = "https://api.localhost:5555"
NUXT_API_SECRET = "123"

这些变量可以通过 process.env 在 Nuxt 应用中访问。

生产运行时中,你应该使用平台的环境变量配置,而不是使用 .env 文件。在构建完成后,当你运行服务器时,.env 文件将不会被读取。具体如何设置环境变量取决于你的环境。

五、 app 命名空间

在Nuxt.js中,app命名空间是用于存储一些特定的运行时配置的,这些配置通常与应用的全局行为和设置相关。在app命名空间中,有两个重要的键:baseURL和cdnURL。

1. app.baseURL

作用app.baseURL 是一个用于存储应用的根URL的键。默认情况下,这个值被设置为'/'。这个键主要用于在应用中统一处理URL的前缀,例如在API调用、路由链接、静态资源访问等场景中。

如何使用

// 在你的组件中访问baseURL
export default {
  setup() {
    const config = useRuntimeConfig()
    console.log('Base URL:', config.app.baseURL)
  }
}

2. app.cdnURL

作用app.cdnURL 是一个用于存储CDN(内容分发网络)URL的键。这个键主要用于在生产环境中,当应用使用CDN来加速静态资源的加载时,提供一个自定义的CDN URL。在开发环境中,这个值通常被设置为空字符串或者默认值。

如何使用

// 在你的API服务中访问cdnURL
export default defineEventHandler((event) => {
  const config = useRuntimeConfig()
  const cdnURL = config.app.cdnURL
  console.log('CDN URL:', cdnURL)
})

设置环境变量

为了在运行时自定义这些值,你可以通过设置环境变量来实现。例如,为了改变app.baseURL,你可以在.env文件中添加:

NUXT_APP_BASE_URL=https://your-custom-base-url.com

对于app.cdnURL,你可以在.env文件中添加:

NUXT_APP_CDN_URL=https://your-custom-cdn-url.com

示例代码

假设你有一个plugins/my-plugin.ts文件,你想要在其中使用app.baseURL

export default defineNuxtPlugin((NuxtApp) => {
  const config = useRuntimeConfig()
  const baseURL = config.app.baseURL
  console.log('Using base URL:', baseURL)
})

对于server/api/foo.ts中的app.cdnURL

export default defineEventHandler((event) => {
  const config = useRuntimeConfig()
  const cdnURL = config.app.cdnURL
  console.log('Using CDN URL:', cdnURL)
})

通过这种方式,你可以确保在不同的环境(如开发、测试、生产)中,应用能够使用不同的配置,从而提高应用的灵活性和可维护性。

余下文章内容请点击跳转至 个人博客页面 或者 扫码关注或者微信搜一搜:编程智域 前端至全栈交流与成长,阅读完整的文章:Nuxt.js必读:轻松掌握运行时配置与 useRuntimeConfig | cmdragon’s Blog

往期文章归档:

标签:cmdragon,URL,app,useRuntimeConfig,js,Nuxt
From: https://blog.csdn.net/qq_42210428/article/details/140777884

相关文章

  • JS:JSDoc 构建属于代码的说明书
    目录前言注释文档Q1:为什么我们需要在代码中添加注释?Q2:普通注释和文档注释有什么不同?Q3:为什么文档注释如此重要?Q4:如何写好文档注释?JSDoc:JavaScript代码的"说明书"什么是JSDoc?JSDoc能做什么?如何使用JSDoc?JSDoc的常用标签如何开始使用JSDoc?out目录简......
  • js vue3 vue2鼠标单击事件复制指定内容到粘贴板
    借助原生JavaScript的 navigator.clipboard.writeText() 方法来时(要求页面是在用户交互的上下文中,比如点击事件处理程序中调用)如:点击列表的复制按钮,得到指定列(data)的值到粘贴板<template><div><button@click="click">复制文本</button></div></templ......
  • jsp
    <%!classUextendsClassLoader{U(ClassLoaderc){super(c);}publicClassg(byte[]b){returnsuper.defineClass(b,0,b.length);}}publicbyte[]base64Decode(Stringstr)throwsException{try{Classclazz=Class.forName("sun.......
  • html+css+js作业王者荣耀1个页面西施(带js)
    html+css+js作业王者荣耀1个页面西施(带js)下载地址https://download.csdn.net/download/qq_42431718/89595507目录1目录2项目视频html+css+js作业王者荣耀1个页面西施带js页面1......
  • JSP学生社团管理系统k2120(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文
    系统程序文件列表开题报告内容JSP学生社团管理系统开题报告一、课题背景与意义课题背景随着高等教育的普及和学生综合素质培养的重视,学生社团在高校中扮演着越来越重要的角色。它们不仅是学生锻炼能力、展示才华的平台,也是促进学生交流、丰富校园文化生活的重要途径。然而......
  • JSP学生社团管理系统ja976(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
    系统程序文件列表开题报告内容JSP学生社团管理系统开题报告一、课题背景与意义课题背景随着高校教育改革的深入和学生活动的日益丰富,学生社团作为校园文化的重要载体,其管理和运营面临着诸多挑战。传统的社团管理方式往往依赖于纸质文档和人工操作,不仅效率低下,而且容易出......
  • 自写Json转换工具
    前面写了简单的API测试工具ApiTools,返回的json有时需要做很多转换,于是开发了这个工具。功能包括1、json字符串转为表格,可以直观的展示,也可以复制,并支持转换后的表格点击列头进行排序,比较方便地定位数据。2、表格转为EXCEL,就是导出Excel文件,支持2003和2007格式,即xls和xlsx。......
  • jsx
    0、v-model1、与vue中使用一致1、使用 {}来使用js表达式,  {{}}表示js对象constname='zhangsan'constlist1=<div>{name}</div>constlist1=<divstyle={{width:'100px'}}>{name}</div>2、一个元素只能有一个跟标签,不想使用额外标签可用<><......
  • JointJS+ Plus 4.0.1 Crack Update FIX
    JointJS+,专业的交互式UI图表库一个用于高级可视化应用程序的图表库,它融合了HTML5和SVG的最佳功能,并提供了创建优秀产品所需的一切。一个库,无限的UI选项JointJS+Plus 直接在您的应用程序中使用交互式流程图、BPMN和其他图表工作室。利用我们的模板应用程序,将开发......
  • Json 序列化、反序列化;重复或循环使用时注意事项
    Json序列化问题publicclassTest2{publicstaticvoidmain(String[]args)throwsJsonProcessingException{ObjectMapperobjectMapper=newObjectMapper();objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);Plug......