nuxt3快速上手

1.安装:

npx nuxi init project-name   # project-name 是项目名,如果下载不下来请挂梯子。

2.安装依赖:

npm install

3.运行项目:

npm run dev

4.代码解释:

<template><!-- app.vue 是所有页面的入口: --><!-- 1.nuxt默认会找pages文件下index.vue,index.vue相当于浏览器中输入的/开始,index.vue外面可以像其它页面一样放个文件夹,但是必须命名为index,否则找不到,报错,通常情况下不会放index文件夹 --><!-- <TestComp /> 2.nuxt中可以直接写组件名,组件会被渲染,不过需要注意的是:template下只要一个根标签 --><!-- <NuxtLink to='/'>首页</NuxtLink> 3.NuxtLink相当于vue中router-link标签,to后面的值给路由值,nuxt中基于文件路由(无需按装vue-router,但是所有页面需要放到pages文件下。并且里层文件需要命名为index.vue,如:pages/musicPage/index.vue,如果需要放到其它目录,则需要更改配置),如果想要访问pages下的musicPage页面,那么只需要在to后面给/musicPage,如:to='/musicPage' --><!-- 4.NuxtPage相当于vue中router-view标签 --><NuxtPage />{{ data }}
</template>
<script setup lang='ts'>
// 5.useSeoMeta函数用来优化seo,设置网站的标题,描述等信息,可被爬虫爬到,此函数在其他页面也是可以使用的。
const title = '苦海123'
useSeoMeta({title: title,description: '苦海123是一个程序员!',keywords: '程序员,前端,web,uniapp,node.js,java,mySql,php,it男,宅男'
})
// 6.ui库的使用:nuxt中使用ui库步骤,以:vant/nuxt为例:1.安装(yarn add vant、yarn add @vant/nuxt --dev) 2.在nuxt.config.ts文件modules中配置,如:modules: ['@vant/nuxt']
// 7.nuxt中支持写服务接口,接口/默认指向server文件夹,如果想要写一个路径为:/api/musicListApi的接口,那么文件路径为:server/api/musicListApi.ts,接口同样支持文件路径(server下可以嵌套更多的文件,进行路由处理),会自动去匹配;除了可以以文件路径访问接口外,nuxt还支持文件名中指定请求方式,如果不写则都可以访问,如:videoListApi.get.ts,表示:get请求,路径为:/api/videoListApi
// 获取server/api/musicListApi接口数据:在nuxt3中无需按钮axios等工具,可以直接使用useFetch来获取数据,官方也推荐使用useFetch,useFetch同样可以请求其它语言提供的网路接口,请求此服务外的ip时需要设置baseURL或配置代理
const data = await useFetch('/api/musicListApi', {method: 'get', // 指定请求方式,接口文件中没有指明请求方式的情况下都可以设置query: { key1: 'value1', key2: 'value2' }, // 底层自动转问号传参params: { 'paramsKey1': 'paransValue1' }, // 请求提传参headers: { 'token': 'token123'}, // 设置请求头信息// baseURL: 'http://www.baidu.com', // 设置基础URLonRequest({ request, options }) { // onRequest用于设置请求拦截器,可用于设置请求头等信息options.headers = options.headers || {}options.headers.authorization = 'token'console.log('请求成功:', options)},onRequestError({ request, options, error }) { // onRequestError请求异常时执行console.log('请求异常:', error)},onResponse({ request, response, options }) {console.log('响应成功:', response)},onResponseError({ request, response, options }) {console.log('响应异常:', response)}
})
console.log('data', data) // 返回值:{ "data": { '接口返回的实际数据' }, "pending": false, "error": null, "status": "success" }
// 8.有的时候写ts接口是很麻烦的事,此时推荐一个通过json数据转接口的工具:json2ts,在vscode插件中安装,按快捷键:cmd+alt+v 或 ctrl + alt + v,测试无效
// 9.动态路由:有的时候接口是路由传参的形式,如:/api/videoList/123,这个接口中123是参数,此时不可能在videoList下面写多个文件,此时可以将videoList下所有的文件统一到一个文件上,此时可以使用动态命名如:/api/videoList/[id].vue,在[id].vue文件模版中可以通过:$route.params.id拿到动态参数,js中可以通过: const { params } = useRoute()获取动态参数
// 10.组将上面加keepalive可以做到缓存数据,还可以加缓存页面数量,如: <NuxtPage :keepalive='{ max: 10 }' />
</script>
<style scoped lang="scss">
// 8.nuxt支持全局导入scss代码-测试异常:
// @import '~/assets/css/mixins.scss';
/* 全局修改ui组件库风格:测试无效 */
:root {--van-button-primary-background: red !important;
}
</style>

5.服务接口示例:

// 1.nuxt中支持写服务接口,接口/默认指向server文件夹,如果想要写一个路径为:/api/musicListApi的接口,那么文件路径为:server/api/musicListApi.ts,接口同样支持文件路径,会自动去匹配;除了可以以文件路径访问接口外,nuxt还支持文件名中指定请求方式,如果不写则都可以访问,如:videoListApi.get.ts,表示:get请求,路径为:/api/videoListApi
// 2.定义的接口可以在页面中通过:await useFetch('/api/musicListApi')获取数据,useFetch类似axios,defineEventHandler中可以调其它接口或者访问数据库等
export default defineEventHandler(event => {return {code: 200,msg: '获取音频列表数据成功!',data: [{ id: 0, name: '音频1', label: '音频文件1' },{ id: 1, name: '音频2', label: '音频文件2' },{ id: 2, name: '音频3', label: '音频文件3' }]}
})

6.公共scss代码引入:

<template><div><span>TestComp组件</span></div><van-button type='primary'>vant按钮</van-button>
</template>
<style scoped lang="scss">
// 引入公共代码:
@import '~/assets/css/mixins.scss';
div {background: yellow;span {color: blue;@include mx_font($size: 46px, $color: red, $weight: false, $lineHeight: false, $fontFamily: false, $letterSpacing: false);}
}
</style>

7.nuxt.config.ts配置:

export default defineNuxtConfig({// 1.是否开启服务端渲染ssr模式:// ssr: true,// 2.是否开启调试工具:devtools: { enabled: true },// 3.注册应用模块,如UI库等:modules: ['@vant/nuxt']
})

8.文件目录:
在这里插入图片描述

提示:本文图片等素材来源于网络,若有侵权,请发邮件至邮箱:810665436@qq.com联系笔者 删除。

笔者:苦海123

其它问题可通过以下方式联系本人咨询:

QQ:810665436

微信:ConstancyMan

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣题目学习笔记(OC + Swift)19. 删除链表的倒数第 N 个结点

19. 删除链表的倒数第 N 个结点 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 此题目为链表题&#xff0c;拿出我们的杀手锏&#xff0c;链表解题经典三把斧&#xff1a; 哑巴节点栈快慢指针 关于内存问题&#xff1a;由于Swift及…

选择移动订货系统源码的四大原因

移动订货系统需要选择源码支持的厂家&#xff0c;有以下四个原因&#xff0c;其中第四个是比较重要的&#xff0c;大家点个关注点个赞&#xff0c;我们接着往下看。 1.可自行定制&#xff1a;支持源码的移动订货系统可以根据企业的具体需求进行定制开发&#xff0c;满足企业特定…

pyqt5实现wget下载视频文件的进度条显示

简介&#xff1a; 最近在写一个项目&#xff0c;用到了wget下载视频&#xff0c;为了更好的视觉效果&#xff0c;所以使用pyqt5中QProgressBar来实现下载进度条。当视频开始下载就会弹出下载进度条&#xff0c;下载完成后进度条消失。效果如下图; 具体代码实现 &#xff1a; …

FastGPT+ChatGLM3-6b搭建知识库

前言&#xff1a;我用fastgpt直接连接chatglm3&#xff0c;没有使用oneai&#xff0c;不是很复杂&#xff0c;只需要对chatglm3项目代码做少量修改就能支持使用embeddings&#xff0c;向量模型用的m3e&#xff0c;效果还可以 我的配置&#xff1a; 处理器&#xff1a;i5-13500 …

华为云Stack 8.X流量模型分析(三)

三、VPC内部二层流量模型分析 1.不同宿主机下虚拟机互访 VM1发送arp请求&#xff0c;arp报文根据流表到达br-tun&#xff0c;br-tun给予VM1到达VM2的MAC信息。此时arp报文不出宿主机&#xff08;Host1&#xff09;&#xff1b; **注意&#xff1a;**br-tun内的信息是由管理平…

Ignite分布式缓存框架

1.前言 Apache Ignite是一个分布式数据库&#xff0c;支持以内存级的速度进行高性能计算。 2。快速入门 本章节介绍运行Ignite的系统要求&#xff0c;如何安装&#xff0c;启动一个集群&#xff0c;然后运行一个简单的HelloWorld示例。 2.1.环境要求 Apache Ignite官方在如…

110基于matlab的混合方法组合的极限学习机和稀疏表示进行分类

基于matlab的混合方法组合的极限学习机和稀疏表示进行分类。通过将极限学习机&#xff08;ELM&#xff09;和稀疏表示&#xff08;SRC&#xff09;结合到统一框架中&#xff0c;混合分类器具有快速测试&#xff08;ELM的优点&#xff09;的优点&#xff0c;且显示出显着的分类精…

关于频谱仪是如何来实现辐射功率测量

1.1 内部基本原理框架 首先是接收到外部信号输入&#xff0c;然后经过可变衰减器衰减&#xff0c;接着进行变频&#xff0c;接着经过带宽带通滤波器进行滤波&#xff0c;滤波后的信号送入检波器进行信号检测&#xff0c;再经对数放大器放大后&#xff0c;送入低通滤波器进行视频…

java.lang.IllegalStateException: Duplicate key

序言 最近监控扫描出我们项目的某些异常信息&#xff0c;报错java.lang.IllegalStateException: Duplicate key xxx&#xff0c;看到异常来自stream流&#xff0c;然后定位看了一下是某位同事的代码使用stream流把List转Map集合出现重复的key异常信息。List集合A对象来源于某个…

鸿蒙ArkTS语言介绍与TS基础语法

1、ArkTS介绍 ArkTS是HarmonyOS主力应用开发语言&#xff0c;它在TS基础上&#xff0c;匹配ArkUI框架&#xff0c;扩展了声明式UI、状态管理等响应的能力&#xff0c;让开发者以更简洁、更自然的方式开发跨端应用。 JS 是一种属于网络的高级脚本语言&#xff0c;已经被广泛用…

FunBox11靶场 安装下载渗透详细教程

一. 下载靶场 官网下载地址 二. 安装 1.导入FunBox11 三.修改键盘布局和修改IP 参考历史文庄FunBox9安装教程 四. 打靶 1.提供arp-scan工具扫描网络主机IP arp-scan -l -i eh1 2.通过nmap 对目标主机进行扫描 nmap -A -p- -T5 172.30.1.134 -A : 启动Os检测&#xff0c;版…

Qt/QML编程学习之心得:在QML工程中添加库(十四)

实现库并且使用库&#xff0c;类似于vc中的静态库library、动态库dll、COM组件等方法一样&#xff0c;在Qt中也经常会使用库&#xff0c;或者将部分功能打包成库。 右击Qt项目&#xff0c;点击add library... 在linux中将.a文件导入&#xff0c;工程会自动在.pro温江中增加相应…