创建一个简单的 Nuxt.js 应用

news/2024/11/28 20:26:55/

记录一下自己创建一个使用 Vue 3 的 Nuxt.js 应用的过程。该应用包含两个子页面,相对简单。最大的坑是创建项目时用了如下的命令:

npx create-nuxt-app pic-first-nuxt

结果如论如何都创建不出来,要不就卡住,要不就报错:
ERROR Error: Failed to download template from registry: Failed to download https://raw.githubusercontent.com/nuxt/starter/templates/templates/v3.json: TypeError: fetch failed

因此才决定记录一下这个创建过程。

P.s. 前端开发坑真多,版本之间所带来的开发差异,出了问题查都查不到!

1. 安装 Node.js 和 npm

确保你的计算机上安装了 Node.js 和 npm。你可以在 Node.js 官方网站 下载并安装它们。

2. 创建一个新的 Nuxt.js 3 项目

使用 Nuxt.js 提供的脚手架工具 npx 来创建一个新的项目。在命令行中运行以下命令:

npx create-nuxt-app@latest pic-first-nuxt

nuxt3-app 替换为你想要的项目名称。这个命令会下载并安装最新版本的 Nuxt.js 3 及其依赖项,并为你生成一个基本的项目结构。

3. 进入项目目录

命令执行完成后,进入新创建的项目目录:

cd nuxt3-app

4. 启动开发服务器

在项目目录中,运行以下命令来启动开发服务器:

npm run dev

或者,如果你使用的是 Yarn,则运行:

yarn dev

开发服务器启动后,你可以在浏览器中打开 http://localhost:3000 来查看你的 Nuxt.js 应用。默认情况下,它会显示一个欢迎页面。

5. 添加子页面

在 Nuxt.js 中,页面通常放在 pages/ 目录下。每个 .vue 文件都会自动成为一个路由。

  • 创建第一个子页面:在 pages/ 目录下创建一个名为 page1.vue 的文件,并添加一些基本内容:
<template><div><h1>Page 1</h1><p>This is the first sub-page.</p></div>
</template><script setup>
</script><style scoped>
/* 添加一些样式(可选) */
</style>
  • 创建第二个子页面:在 pages/ 目录下创建一个名为 page2.vue 的文件,并添加一些基本内容:
<template><div><h1>Page 2</h1><p>This is the second sub-page.</p></div>
</template><script setup>
</script><style scoped>
/* 添加一些样式(可选) */
</style>

6. 导航到子页面

你可以在 layouts/default.vue 中添加一个导航栏,或者使用 Nuxt.js 提供的 <NuxtLink> 组件在页面的其他地方创建链接。

例如,在 layouts/default.vue 中:

<template><div><nav><ul><li><NuxtLink to="/">Home</NuxtLink></li><li><NuxtLink to="/page1">Page 1</NuxtLink></li><li><NuxtLink to="/page2">Page 2</NuxtLink></li></ul></nav><NuxtPage /></div>
</template><script setup>
</script><style>
/* 添加一些全局样式(可选) */
nav ul {list-style-type: none;padding: 0;
}nav ul li {display: inline;margin-right: 10px;
}
</style>

这里的 <NuxtPage /> 组件是一个特殊的组件,它会被替换为当前路由对应的页面组件。

7. 运行并查看应用

回到命令行,确保开发服务器仍在运行。现在,你可以在浏览器中打开 http://localhost:3000,你应该能看到包含导航栏的主页。点击导航栏中的链接,你应该能够导航到 page1.vuepage2.vue 对应的页面。

这样,你就创建了一个使用 Vue 3 的 Nuxt.js 应用,并包含了两个子页面。你可以根据需要进一步自定义和扩展你的应用。

8. 大型应用常用的项目结构

Nuxt.js 大型项目通常包含以下文件和目录:

  • assets/:用于存放静态资源,如 CSS、JavaScript 和图片文件。
  • components/:用于存放 Vue 组件。
  • layouts/:用于定义页面的布局。
  • middleware/:用于存放中间件函数。
  • pages/:用于存放应用的页面组件。Nuxt.js 会根据这个目录下的 .vue 文件自动生成路由。
  • plugins/:用于存放 Vue 插件。
  • store/:用于存放 Vuex 状态管理库的状态树。
  • .nuxt/:这是 Nuxt.js 在构建和运行时生成的目录,通常不需要手动修改。
  • nuxt.config.js:这是 Nuxt.js 的配置文件,你可以在这里配置应用的各种选项。
  • package.json:项目的依赖和脚本配置文件。

http://www.ppmy.cn/news/1550717.html

相关文章

网络安全究竟是什么? 如何做好网络安全

网络安全是如何工作的呢? 网络安全结合多层防御的优势和网络。每个网络安全层实现政策和控制。授权用户访问网络资源,但恶意参与者不得进行攻击和威胁。 我如何受益于网络安全? 数字化改变了我们的世界。我们的生活方式、工作、玩耍,和学习都发生了变化。每个组织希望提供…

面试题分析: Unity UGUI动静分离

近期有同学面试&#xff0c;被问到这样一道面试题: ”说说UGUI的动静分离是怎么一回事&#xff1f;” 关于这个优化有一些误区&#xff0c;容易让开发者陷入一个极端。我们先分析关于UGUI 合批优化的问题&#xff0c;最后给这个面试题一个参考回答。 对惹&#xff0c;这里有…

【04】Selenium+Python 手动添加Cookie免登录(实例)

一、什么是Cookie&#xff1f; Cookie 是一种由服务器创建并保存在用户浏览器中的小型数据文件。它用于存储用户的相关信息&#xff0c;以便在后续访问同一网站时可以快速检索这些信息。Cookie 主要用于以下几个方面&#xff1a; 1.状态管理&#xff1a; Cookie 可以保存用户…

MD5算法加密笔记

MD5是常见的摘要算法。 摘要算法&#xff1a; 是指把任意⻓度的输⼊消息数据转化为固定⻓度的输出数据的⼀种密码算法. 摘要算法是 不可逆的, 也就是⽆法解密. 通常⽤来检验数据的完整性的重要技术, 即对数据进⾏哈希计算然后⽐ 较摘要值, 判断是否⼀致. 常⻅的摘要算法有: MD5…

Java线程同步Synchronized

在Java中&#xff0c;可以使用synchronized关键字实现线程同步。synchronized关键字可以用来修饰方法或代码块&#xff0c;保证在同一时间内只有一个线程可以执行被synchronized关键字修饰的代码。 当一个方法被synchronized修饰时&#xff0c;该方法称为同步方法。同一时间内…

代数拓扑学

代数拓扑学是数学中的一个分支领域&#xff0c;旨在研究代数结构与拓扑空间之间的关系。它主要关注拓扑空间的代数特征&#xff0c;以及代数结构的拓扑性质。 代数拓扑学的核心概念包括拓扑空间、群、环、域、模、代数拓扑空间等。通过将代数结构的性质与拓扑空间的性质相结合…

三维地形图计算软件(三)-原基于PYQT5+pyqtgraph旧代码

最先入手设计三维地形图及平基挖填方计算软件时&#xff0c;地形图的显示方案是&#xff1a;三维视图基于pyqtgraph.opengl显示和二维视图基于pyqtgraph的PlotWidget来显示地形地貌&#xff0c;作到一半时就发现&#xff0c;地形点过多时&#xff0c;将会造成系统卡顿(加载时主…

HarmonyOS 3.1/4项目在DevEco Studio 5.0(HarmonyOS NEXT)版本下使用的问题

有读者在使用《鸿蒙HarmonyOS应用开发入门》书中的源码时&#xff0c;遇到了问题。本文总结问题的原因及解决方案。 有读者在使用《鸿蒙HarmonyOS应用开发入门》书中的源码时&#xff0c;遇到了问题。本文总结问题的原因及解决方案。 问题原因 这些问题&#xff0c;本质上是…