当前位置: 首页 > news >正文

【Nuxt】配置

runtimeConfig 运行时配置

// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({compatibilityDate: '2024-04-03',devtools: {enabled: true},runtimeConfig: {appKey: process.env.APP_KEY,public: {baseUrl: process.env.BASE_URL,}}
});

.env :

通过 process.env.xxx 来获取,项目运行会自动读取该文件。port 端口默认也是 3000 。

APP_KEY='your_app_key'
BASE_URL='https://api.yourwebsite.com'
PORT=3000

env 环境变量的优先级更高,如果使用 NUXT_ 开头的,其他 nuxt 配置中的环境变量会被替换:在这里插入图片描述
这里的 appKey 变量值就会变为: ‘DDDDDD’。使用 NUXT_PUBLIC_BASE_URL也是同理。

app.vue

<template><div><NuxtRouteAnnouncer /><NuxtWelcome /></div>
</template>
<script setup>
const runtimeConfig = useRuntimeConfig()
//判断代码运行的环境
if (process.client) {console.log('This code is running on the client')// console.log(runtimeConfig.appKey) // 该属性客户端不可以访问console.log(runtimeConfig.public.baseUrl)
}
if (process.server) {console.log('This code is running on the server')console.log(runtimeConfig.appKey)// public 内属性客户端和服务器都可以访问// public 外属性只有服务器都可以访问console.log(runtimeConfig.public.baseUrl)
}

appConfig 应用配置

方法一:在 nuxt.config.ts 中进行配置

  // 应用的配置appConfig: {title: 'Nuxt 3 + TS + Vite + Pinia + Element Plus',theme: {primary: '#409EFF',}}
// 获取应用配置 任何环境都可以访问
const appConfig = useAppConfig();
// console.log(appConfig.title, appConfig.theme.primary)
onMounted(() => {// 会在该组件加载时改变title// 此时title 没有改变是因为上面引入的内部组件含有自己的 titledocument.title = appConfig.title
});

方法二:在 app.config.ts 文件中配置:

export default defineAppConfig({title: 'Nuxt 3 + TS + Vite + Pinia + Element Plus',theme: {primary: '#409EFF',}
})

实际项目中会将这两种方法合并,如果存在相同的,则 app.config.ts 文件的优先级更高。

app 配置

方法一:静态添加配置:

  // app 配置app: {// 给所有页面head添加配置(SEO, 样式, 脚本)head: {title: 'Nuxt 3',charset: 'utf-8',viewport: "width=device-width, initial-scale=1",meta: [{ name: 'description', content: 'Nuxt 3 + TS + Vite + Pinia + Element Plus' },{ name: 'keywords', content: 'Nuxt 3, TS, Vite, Pinia, Element Plus' }],link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }],style: [{ children: 'body { margin: 0; }' }],script: [// { src: '/js/index.js' }]}}

在这里插入图片描述

方法二:在 app.vue 文件内为所有页面动态添加配置,优先级大于在 nuxt.config.ts 中配置:

useHead({title: appConfig.title,meta: [{name: 'description', content: 'My amazing site.'}],link: [{rel: 'icon', type: 'image/x-icon', href: '/favicon.ico'}],style: [{children: 'body { background-color: #f0f0f0; }'}],script: [// {src: 'https://cdn.example.com/script.js'}],bodyAttrs: {class: 'my-body-class'},
})

而且上述的配置字符串也支持动态替换(ref)。

方法三:在 vue 文件中的 template 内写 nuxt的内置组件:

    <Head><Meta name="description" content="My amazing site." /><title>app 首页</title></Head>

内置组件形式的 app 配置是三者里面最高的。

方法四:直接在 app.config.ts 中(defineAppConfig)配置。

可以使用 useAppConfig 获取。

  • 与runtimeConfig不同,app.config.ts配置文件中的选项不能使用env环境变量来覆盖
  • 不要将秘密或敏感信息放在app.config.ts文件中,该文件是客户端公开

router 配置

hashmode

  ssr: false, // 是否启动 ssrrouter: { // 只有在 spa 单页模式下 可以配置路由模式 默认后端渲染(SSR)为history模式options: {hashMode: true}}

alias 默认已配置,无需手动配置:

在这里插入图片描述

其他配置

  • modules:配置Nuxt扩展的模块,比如:@pinia/nuxt@nuxt/image
  • routeRules:定义路由规则,可更改路由的渲染模式或分配基于路由缓存策略
  • builder:可指定用vite还是webpack来构建应用,默认是vite。如切换为webpack还需要安装额外的依赖。

runtimeConfig vs appConfig

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Python 逆向滑块】(实战六)逆向滑块,并实现用Python+Node.js 生成滑块、识别滑块、验证滑块、发送短信
  • CTF web bibibi题型
  • Unity计算位置平移矩阵
  • 《Milvus Cloud向量数据库指南》——什么是高可用:深入理解数据库系统中的高可用性架构
  • 【Redis 进阶】哨兵 Sentinel(重点理解流程和原理)
  • XML 学习笔记
  • ZeroMQ(二):请求-响应模式,C和C++。
  • 中国AI大模型场景探索及产业应用调研报告
  • 类和对象(上) - c++
  • 【React】常见的 HOC 使用案例
  • Qt Designer,仿作一个ui界面的练习(一):界面的基本布局
  • Unity四元数线性插值Lerp
  • C++篇:入门(2)
  • 重磅更新||Pyside6|Pyqt实现处理GUI界面获取的数据时进度条同步更新
  • 第一个 Flask 项目
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • Android Studio:GIT提交项目到远程仓库
  • Django 博客开发教程 16 - 统计文章阅读量
  • Facebook AccountKit 接入的坑点
  • JS学习笔记——闭包
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • PermissionScope Swift4 兼容问题
  • Python学习之路13-记分
  • spring + angular 实现导出excel
  • SpringBoot几种定时任务的实现方式
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 看域名解析域名安全对SEO的影响
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 免费小说阅读小程序
  • 全栈开发——Linux
  • 深入 Nginx 之配置篇
  • 算法---两个栈实现一个队列
  • FaaS 的简单实践
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​【经验分享】微机原理、指令判断、判断指令是否正确判断指令是否正确​
  • ![CDATA[ ]] 是什么东东
  • #单片机(TB6600驱动42步进电机)
  • #知识分享#笔记#学习方法
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (C语言)球球大作战
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (PySpark)RDD实验实战——取最大数出现的次数
  • (SpringBoot)第七章:SpringBoot日志文件
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (五)IO流之ByteArrayInput/OutputStream
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (转)nsfocus-绿盟科技笔试题目
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿