• 初识nuxt3


    开始使用
    安装
    //使用npx创建脚手架
    npx nuxi init 
    
    cd 
    //安装node_module
    yarn install
    
    //启动
    yarn dev -o
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    自动导入

    Nuxt自动导入辅助函数、可组合函数和Vue api在应用程序中使用,而无需显式导入它们。基于目录结构,每个Nuxt应用程序还可以对自己的组件、可组合组件和插件使用自动导入。组件、可组合组件或插件可以使用这些功能。

    在文档中,没有显式导入的每个函数都是由Nuxt自动导入的,可以在代码中原样使用。

    Nuxt 自动导入

    Nuxt自动导入函数和composables来执行data fetching,访问app context和runtime config,管理state或定义组件和插件。

    
    
    • 1
    • 2
    • 3
    • 4
    Vue 自动导入

    Vue 3公开了诸如ref 、 computed等反应性api,以及Nuxt自动导入的生命周期钩子和帮助器

    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    Explicit 导入

    Nuxt使用#imports别名公开每个自动导入,如果需要,可以使用该别名显式导入:

    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    关闭自动导入

    如果你想关闭自动导入,你可以将 imports.autoImport设置为 false

    export default defineNuxtConfig({
      imports: {
        autoImport: false
      }
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    Components 目录

    components/目录是您放置所有Vue组件的地方,然后可以在您的页面或其他组件中导入这些组件,Nuxt自动导入你的components目录中的任何组件(以及你可能正在使用的任何模块注册的组件)。

    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    默认情况下,任何扩展名在nuxt.config.ts extensions键]中指定的文件都被视为组件。 如果你需要限制应该注册为组件的文件扩展名,你可以使用组件目录声明的扩展形式及其extensions键

    export default defineNuxtModule({
      components: [
        {
          path: '~/components',
         extensions: ['.vue'],
        }
      ]
    })
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    如果你在嵌套目录中有一个组件,组件的名称将基于它自己的路径、目录和文件名,删除重复的段。
    如果你想只根据组件的名称而不是路径自动导入组件,那么你需要使用配置对象的扩展形式将pathPrefix选项设置为false.

    Dynamic Components

    如果你想使用Vue 语法,那么你将需要使用Vue提供的resolveComponent辅助方法。

    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    使用resolveComponent来处理动态组件,请确保除了组件名称之外不插入任何内容,组件名称必须是字符串而不是变量。

    Dynamic Imports

    要动态导入一个组件(也称为惰性加载组件),你所需要做的就是在组件名称前添加Lazy前缀。

    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    ClientOnly Component

    Nuxt 提供了组件,目的是只在客户端呈现一个组件。若要只在客户端导入组件,请在客户端插件中注册该组件。

    如果组件只能在客户端呈现,则可以添加.client 后缀到您的组件。例:Comments.client.vue
    .server 组件:.server 组件既可以单独使用,也可以与.client组件配对使用。

    DevOnly Component
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    Composables 目录

    Nuxt 3使用composables/目录使用auto-imports自动将Vue组合导入到应用中!
    在底层,Nuxt自动生成文件.nuxt/imports.d.ts来声明类型。

    为了让Nuxt生成类型,你必须运行nuxi prepare, nuxi dev 或 nuxi build。如果你在没有运行开发服务器的情况下创建了一个可组合对象,TypeScript会抛出一个错误,比如Cannot find name ‘useBar’.

    export const useFoo = () => {
      return useState('foo', () => 'bar')
    }
    
    
    • 1
    • 2
    • 3
    • 4

    现在可以在 .js, .ts 和 .vue 文件中使用自动导入组合

    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    Nuxt只扫描 composables/ 目录的顶层文件

    扫描composables/文件夹内的嵌套目录:

    export default defineNuxtConfig({
      imports: {
        dirs: [
          // Scan top-level modules
          'composables',
          // ... or scan modules nested one level deep with a specific name and file extension
          'composables/*/index.{ts,js,mjs,mts}',
          // ... or scan all modules within given directory
          'composables/**'
        ]
      }
    })
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    # 数据结构
    多线程(基础)
    Swift学习内容精选(一)
    Flutter框架和原理剖析
    用PS将一张照片调成简笔画风格
    【Qt】解决 “由于找不到Qt5Cored.dll,无法继续执行代码”(亲测有效)
    算法拾遗十五补链表相关面试题
    【Codeforces】 CF587F Duff is Mad
    【图像分类】2022-MPViT CVPR
    基于分布鲁棒优化的电-气-热综合能源系统日前经经济调度
  • 原文地址:https://blog.csdn.net/qq_34185872/article/details/131093136