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

nuxt 学习笔记

这里写目录标题

  • 路由
    • 跳转NuxtLink
    • query参数
    • params参数
    • 嵌套路由
      • tab切换效果
  • layouts 文件夹强制约定放置所有布局文件,并以插槽的形式作用在页面中
    • 1.在app.vue里面
    • 2.
  • component 组件
    • 使用Vue < component :is="">
  • Vuex
  • 生命周期
  • 数据请求
    • useFetch
    • useAsyncData
    • useAsyncData
    • useLazyAsyncData

路由

修改完注意重启
Nuxt3路由的实现需要在根路径下创建pages文件夹,默认加载index.vue作为/路径入口文件

  • 摒弃了 vue 中的路由表,改为文件结构自动生成的路由

一级路由写法 < Nuxt />
嵌套路由写法 < nuxt-child />

跳转NuxtLink

query参数

<NuxtLink to="/left/newLeft?id=456"> <button>点我跳转</button> </NuxtLink>
//接收参数{{ $route.query.id }}

params参数

在这里插入图片描述

//【text】.vue页面<NuxtLink to="/left/123"> <button>点我跳转</button> </NuxtLink> //接收参数{{ $route.params.text }}

嵌套路由

在这里插入图片描述

//page1.vue页面
<div><h1>我是第1个页面</h1><NuxtLink to="/page1/page1-1"> <button>点我跳转</button></NuxtLink><NuxtPage></NuxtPage>
</div>
//嵌套传递query参数<NuxtLink to="/page1/page1-1?id=99"> <button>点我跳转</button></NuxtLink>
//嵌套传递params参数<NuxtLink to="/page1/index"> <button>点我跳转</button></NuxtLink>

tab切换效果

tab切换效果,需要用到嵌套路由,默认展示第一个路由页面
这个时候需要设置一个index.vue

在这里插入图片描述
在这里插入图片描述

<NuxtLink to="/page1"> tab1 </NuxtLink>
<NuxtLink to="/page1/tab2"> tab2 </NuxtLink>
<NuxtLink to="/page1/tab3"> tab3 </NuxtLink>
<NuxtPage></NuxtPage>//嵌套路由

layouts 文件夹强制约定放置所有布局文件,并以插槽的形式作用在页面中

只要用户在layouts/下编写布局页面,它将会被自动导入进应用程序。默认的情况下如果用户编写的布局文件的文件名是default.vue,那么它将会被默认应用到全局中,布局通常与< slot/>一同使用,nuxt在加载布局文件后,< slot/>将会默认加载pages目录下的页面

  • 在Layouts中创建的default.vue会作为一个全局默认的布局模板
  • 使用标签时需要将当前页面的layout设置为false,使用这种方式同时需要使用,setup时则需要额外创建一个< script setup>
  • 当程序只有一种布局时,甚至可以直接在app.vue中创建布局

1.在app.vue里面

//app.vue
<template><NuxtLayout><NuxtPage /></NuxtLayout>
</template>

在这里插入图片描述

2.

//index.vue 用的custom.vue的头部
<template><div><NuxtLayout name="custom"><template #header> Some header template content. </template>The rest of the page</NuxtLayout></div>
</template>
<script setup>
definePageMeta({layout: false,
});
</script>
//custom.vue
<template><div><h1>第一种头部布局</h1><slot name="header" /><slot/>//要加slot</div>
</template>

component 组件

根目录创建components文件夹
| components/
–| TheHeader.vue //页面引入 < TheHeader/>
–| TheFooter.vue //页面引入 < TheFooter/>

| components/
–| base/
----| foo/
------| Button.vue //页面引入 < BaseFooButton />

使用Vue < component :is=“”>

<template><component :is="clickable ? MyButton : 'div'" />
</template>
<script setup>
const MyButton = resolveComponent('MyButton')
</script>

Vuex

生命周期

数据请求

useFetch

useAsyncData

useAsyncData

useLazyAsyncData

http://www.lryc.cn/news/164.html

相关文章:

  • Python编程自动化办公案例(1)
  • 一站式 Elasticsearch 集群指标监控与运维管控平台
  • C# 调用Python
  • 51单片机最强模块化封装(3)
  • 【CSS 布局】水平垂直居中
  • 【C++】类和对象--类的6个默认成员函数
  • 常见面试题---------如何处理MQ消息丢失的问题?
  • 十四、Linux网络:高级IO
  • 带你走进API安全的知识海洋
  • 【Java】TCP的三次握手和四次挥手
  • JUC并发编程
  • 概率统计·假设检验【正态总体均值的假设检验、正态总体方差的假设检验】
  • 如何预测机组设备健康状态?你可能需要这套解决方案
  • C++类和对象:面向对象编程的核心。| 面向对象还编什么程啊,活该你是单身狗。
  • CUDA虚拟内存管理
  • 线程池小结
  • vue3状态管理模式 Pinia
  • python基于django的自媒体社区交流平台
  • Python中类和对象(2)
  • SpringMvc入门
  • 设计模式之单例模式(C++)
  • 贪心算法(基础)
  • 【九宫格坐标排列 Objective-C语言】
  • Tomcat简介
  • Python基础及函数解读(深度学习)
  • 车道线检测-PolyLaneNet 论文学习笔记
  • GO——接口(下)
  • 计算机网络之http02| HTTPS HTTP1.1的优化
  • 基于matlab使用神经网络清除海杂波
  • 每天10个前端小知识 【Day 8】