Nuxt.js--》解锁 Nuxt 项目的潜力:从配置开始,迈向成功

这篇具有很好参考价值的文章主要介绍了Nuxt.js--》解锁 Nuxt 项目的潜力:从配置开始,迈向成功。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        博主今天开设Nuxt.js专栏,带您深入探索 Nuxt.js 的精髓,学习如何利用其强大功能构建出色的前端应用程序。我们将探讨其核心特点、灵活的路由系统、优化技巧以及常见问题的解决方案。无论您是想了解 Nuxt.js 的基础知识,还是希望掌握进阶技巧,本专栏都将满足您的需求。接下来让我们一起踏上 Nuxt.js 的旅程,开启一段令人兴奋的前端开发之旅!

Nuxt.js--》解锁 Nuxt 项目的潜力:从配置开始,迈向成功,# Nuxt.js,javascript,开发语言,ecmascript,Nuxt.js,vue.js

需要了解的前置知识

搜索引擎优化(SEO):是一种通过优化网站和内容,以提高在搜索引擎中的排名和可见性的过程。它是一种有助于网站获得更多有机(非付费)流量的策略和技术。但是采用vue.js开发的应用系统对SEO并不友好。

客户端渲染(CSR):客户端渲染是一种 Web 应用程序的渲染方式,其中页面的内容和结构主要由客户端浏览器在运行时生成和呈现,而不是在服务器端生成。在客户端渲染中,服务器主要负责提供数据和基本的 HTML、CSS 和 JavaScript 文件,然后将这些文件发送给客户端浏览器。浏览器接收到这些文件后,会解析 HTML 和 CSS,并执行 JavaScript 代码来生成动态内容和交互。

服务器渲染(SSR):服务器渲染是一种 Web 应用程序的渲染方式,其中页面的内容和结构主要在服务器端生成,然后发送给客户端浏览器进行显示。在服务器渲染中,服务器接收到客户端的请求后,会根据请求的 URL 和参数等信息,生成相应的 HTML、CSS 和 JavaScript 文件,并将这些文件作为响应返回给客户端浏览器。浏览器接收到文件后,直接显示其中的内容,无需再执行额外的操作。

客户端渲染与服务器渲染的区别:在选择服务器渲染还是客户端渲染时需要综合考虑项目需求、技术复杂性和性能要求等因素。一般来说,对于需要快速加载、对 SEO 有较高要求的网站,服务器渲染可能更适合;而对于需要复杂交互和实时更新的应用,客户端渲染可能更具优势。

Vue.js如何实现SSR:vue.js通用应用框架Nuxt,其提供了平滑的开箱即用的体验,建立在同等的vue.js技术栈之上,但抽象出很多模板,并提供了一些额外的功能,例如静态站点生成。通过NUXT可以根据约定的规则,快速的实现Vue SSR。

目录

nuxt基础配置基础讲解

nuxt.config.js文件配置讲解

添加element-ui框架        

局部head配置

nuxt配置modules


nuxt基础配置基础讲解

配置主机和端口号:在nuxt项目中如果想更改主机和端口号很简单,只需在 package.json 文件中新增一个config节点,为了便于区分我将主机和端口号随便设置(修改配置文件需要重启项目):

"config": {
  "nuxt": {
    "host": "127.0.0.2",
    "port": "1818"
  }
},

终端执行 npm run dev 运行项目,得到的结果如下,可见我们配置的主机和端口号生效了:

Nuxt.js--》解锁 Nuxt 项目的潜力:从配置开始,迈向成功,# Nuxt.js,javascript,开发语言,ecmascript,Nuxt.js,vue.js

当然也可以采用另一种方式,在nuxt.config.js 文件中新增server选项,该选项用于配置nuxt应用程序的连接服务器连接变量,默认的服务器连接如下:

Nuxt.js--》解锁 Nuxt 项目的潜力:从配置开始,迈向成功,# Nuxt.js,javascript,开发语言,ecmascript,Nuxt.js,vue.js

如果想运行项目自动打开浏览器,只需在 dev 命令后面加上 -- open 即可运行项目自动打开浏览器

Nuxt.js--》解锁 Nuxt 项目的潜力:从配置开始,迈向成功,# Nuxt.js,javascript,开发语言,ecmascript,Nuxt.js,vue.js

别名: 在nuxt中,~或@ 别名用于关联 srcDri属性,~~或@@别名则用于关联 rootDir属性,例如如果打算将图像链接至/static/目录下,则可以使用 ~ 别名。

<template>
  <img src="~/static/img1.jpg" />
</template>

nuxt.config.js文件配置讲解

当我们使用nuxt构建工具时,默认状态下将得到nuxt.config.js文件,该文件是设置整个项目的全局文件,当打开文件时,应看到如下选项(或属性):

export default {
  mode: 'universal',
  target: 'server', 
  head: {...},
  css: [],
  plugins: [],
  components: true,
  buildModules: [],
  modules: [],
  build: {},
  // 未出现的重要选项,根据项目需要自己添加配置
  env: {},
  loading: {},
  pageTransition: {},
  layoutTransition: {},
}

现在搭建的项目,除了mode、target(这两个现在删掉了)、head、components,其他大多数内容为空,我们可以通过这些自定义nuxt来满足某些特定的项目,接下来将对这些选项及其应用方式分别讲解:

mode选项:用于定义应用程序的“本质”,即通用应用程序或SPA,该选项默认值为universal,当采用nuxt开发SPA时,将该选项值修改为spa即可。现如今该选项删除,后期文章会讨论通用模式。

target选项:用于设置应用程序的部署目标,即作为服务器端渲染应用程序或静态生成应用程序进行部署,对于服务器端渲染部署,target默认值为server,现如今该选项删除,后期会讲解。

head选项:用于定义应用程序的 <head> 块中所有默认元标签,我们可以进行多项自定义配置,比如添加项目所需的JavaScript和CSS库:

export default {
  head: {
    title: 'npx_nuxt',
    htmlAttrs: {...},
    meta: [
        //...
    ],
    script: [
      { src: 'https://cdnjs.lounflare.com../../jquery.min.js' }
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },
      { rel: 'stylesheet', href: 'https://cdn/.../foundation.min.css' }
    ]
  }
}

css选项:用于添加全局css文件,这些文件可以是 .css、.less或.scss文件,也可以是直接从项目的node.js/node_modules/目录中加载的模块和库,方式如下:

css: [
  'jquery-/jquery-ul-min.css',
  '@/sataic/less/styles.less',
  '~static/css/normalze.css',
],

plugins选项:用于添加JavaScript插件,这些插件在Vue根实例之前进行运行,考察代码如下:

export default {
    plugins: ['~/plugins/vue-notifications']
}

components选项:用于设置/components目录下的组件是否应自动进行导入,如果将components选项设置为true,那么我们无须通过手动方式导入组件,这一点很人性化,也没必要设置false。

buildModules选项:用于注册已构建的模块,这些模块仅在应用程序的开发和构建期使用。

modules选项:用于向项目中添加nuxt模块,考察以下代码:

export default {
    modules:[
        '@nuxtjs/axios',
        '~/modules/example.js'
    ]
}

此外,我们还可以利用modules选项直接创建内联模块,如下:

export default {
    modules:[
        function () {
            //...
        }
    ]
}

build选项:用于自定义webpack配置,比如我们想在项目中以全局方式安装jQuery,且无需使用import语句,可通过webpack的ProvidePlugin()函数,即可实现jQuery的自动加载。

import webpack from 'webpack'
export default {
    build:{
        plugins:[
            new webpack.ProvidePlugin({
                $: "jquery"
            })
        ]
    }
}

env选项: 用于设置nuxt应用程序客户端和服务器的环境变量,默认值未空对象,当在项目中使用axios时,env选项将十分有用。考察案例如下:

// nuxt.config.js
export default {
    env: {
        baseUrl: process.env.BASE_URL || 'http://localhost:3000'
    }
}

随后我们就可以在axios插件中使用env属性,如下:

// plugins/axios.js
import axios from 'axios'

export default axios.create({
    baseUrl: process.env.baseUrl
})

loading选项:用于自定义nuxt应用程序加载组件,如果不打算使用默认加载组件,则可以将loading选项设置未false:

// nuxt.config.js
export default {
    loading: false
}

pageTransition和layoutTransition选项:用于自定义nuxt应用程序中页面和布局过渡的默认属性

// nuxt.config.js
export default {
    pageTransition: {
        name: 'fade'
    }
    layoutTransition: {
        name: 'fade-layout'
    }
}

添加element-ui框架        

在外面创建nuxt项目的时候,有一个步骤是让我们选择是否下载 UI组件库 ,当时我选择的none,现在当我们想使用ui组件库的时候,需要自行进行下载了:

Nuxt.js--》解锁 Nuxt 项目的潜力:从配置开始,迈向成功,# Nuxt.js,javascript,开发语言,ecmascript,Nuxt.js,vue.js

这里以element举例吧,首先我们要知道何为Element UI 及 Element Plus?Element UI是一款基于Vue2.x 的界面框架;Element Plus是一款基于Vue3.x 的界面框架,因为这里我们使用的是nuxt2版本,该版本也是适配vue2的,所以我们要下载element-ui这个组件库,话不多说直接开始:

在终端执行如下命令进行安装element-ui组件库:

npm i element-ui -S

安装完成之后,直接在根目录创建一个 plugins 文件夹,该文件夹用于包含JavaScript函数,如需要在实例化Vue根实例之前运行的全局函数,所以我们在该文件创建 element-ui.js 文件,用于存放element-ui组件库的相关配置,如下:

Nuxt.js--》解锁 Nuxt 项目的潜力:从配置开始,迈向成功,# Nuxt.js,javascript,开发语言,ecmascript,Nuxt.js,vue.js

在我们创建的 element-ui.js 文件中添加如下信息:

import Vue from 'vue'
import Element from 'element-ui'
// import locale from 'element-ui/lib/locale/lang/en'
import locale from 'element-ui/lib/locale/lang/zh-CN' // 引入中文插件
 
Vue.use(Element, { locale })
// Vue.use(Element)

接下来需要我们在 nuxt.config.js 中配置如下信息:

Nuxt.js--》解锁 Nuxt 项目的潜力:从配置开始,迈向成功,# Nuxt.js,javascript,开发语言,ecmascript,Nuxt.js,vue.js

配置完nuxt.config.js需要重新运行项目,然后在pages中随便写一下element-ui语法检验一下:

Nuxt.js--》解锁 Nuxt 项目的潜力:从配置开始,迈向成功,# Nuxt.js,javascript,开发语言,ecmascript,Nuxt.js,vue.js

局部head配置

在讲解 nuxt.config.js 文件中的相关配置的时候,我已经表明了该文件是全局生效的文件,了解nuxt的朋友都知道,该框架的主要目的是提高 SEO ,所以在某种情况下我们需要对某些局部的组件进行相应的head设置,如下:

<template>
  <div>
    关于我们
  </div>
</template>

<script>
export default {
  // 设置 head 相应局部配置
  head() {
    return {
      title: '关于我们',
      meta: [
        { hid: 'description', name: 'description', content: '关于此页面的描述' },
        { hid: 'keywords', name: 'keywords', content: '关于此页面的关键字' },
      ]
    }
  }
}
</script>

设置完成之后,我们就可以对某个单独的局部组件页面进行相应的head设置:

Nuxt.js--》解锁 Nuxt 项目的潜力:从配置开始,迈向成功,# Nuxt.js,javascript,开发语言,ecmascript,Nuxt.js,vue.js

查看网页源代码也可以看到我们设置的某些内容和关键字,方便能够被爬虫爬到:

Nuxt.js--》解锁 Nuxt 项目的潜力:从配置开始,迈向成功,# Nuxt.js,javascript,开发语言,ecmascript,Nuxt.js,vue.js

当然这个head的内容也可以动态的展示,类似那种新闻列表,在当前页面点击不同的新闻,head下的title和描述都会发生相应的改变,这里就不再过多赘述了,简单提一下。

nuxt配置modules

在上文讲解的 nuxt.config.js 中的modules模块,仅仅是简单的介绍了一下,接下来将详细介绍该配置项的使用,拿我们常用的 axios 举例,当我们正常安装的axios时命令如下,这种方法虽然能够实现axios,在不二次封装axios的前提下,每个组件如果想使用axios都需要单独去引用:

npm i axios -S

在 nuxt 框架中提供了另外一直安装 axios 的命令,即使你没有二次封装axios,在每个单独的组件中也不需要额外的去导入axios,直接使用即可。

npm i @nuxtjs/axios -S

既然我们都用了nuxt框架,肯定选择的是nuxt给我们推荐的方法,使用第二种方法需要如下配置:

// nuxt.config.js
modules: [
    '@nuxtjs/axios',
]

当然如果想配置代理的话,需要按照如下命令:

npm i @nuxtjs/proxy -S

Nuxt.js--》解锁 Nuxt 项目的潜力:从配置开始,迈向成功,# Nuxt.js,javascript,开发语言,ecmascript,Nuxt.js,vue.js

本文章主要介绍了下Nuxt.js项目的基础配置,下篇文章将继续讲解Nuxt.js的相关知识,关注博主不迷路,学习更多前端知识!文章来源地址https://www.toymoban.com/news/detail-642910.html

到了这里,关于Nuxt.js--》解锁 Nuxt 项目的潜力:从配置开始,迈向成功的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 创新引擎:云计算五大优势解锁企业潜力

    信息技术应用为企业带来了巨大便利,但也面临诸如高成本、低效率、信息孤岛等痛点。云计算作为一种全新的计算模式,可以有效地解决这些问题,降低IT投入,提高业务灵活性。 云计算是一种基于网络的计算模式,可以按需快速提供可扩展的IT资源和应用服务。其核心是多租户的

    2024年02月02日
    浏览(55)
  • 低代码开发应用解锁旅游业的创新潜力

    低代码开发平台的兴起为旅游业带来了许多机遇和挑战。本文将探讨旅游业如何利用低代码开发应用来创造更好的用户体验、提高效率以及应对竞争压力。 近年来,旅游业一直保持着快速增长的势头。随着全球旅游市场的扩大和游客的需求变得更加多样化,旅游企业面临着越

    2024年01月18日
    浏览(90)
  • Sealos 云操作系统一键集成 runwasi,解锁 Wasm 的无限潜力

    WebAssembly (通常缩写为 Wasm) 是一种为网络浏览器设计的低级编程语言。它旨在提供一种比传统的 JavaScript 更快、更高效的方式来执行代码,以弥补 JavaScript 在性能方面的不足。通过使用二进制格式,WebAssembly 能够提供比传统 JavaScript 更快的解析和执行速度。 原文链接:https:

    2024年02月05日
    浏览(55)
  • 解锁滴滴ES的性能潜力:JDK 17和ZGC的升级之路

    前文介绍了滴滴自研的ES强一致性多活是如何实现的,其中也提到为了提升查询性能和解决查询毛刺问题,滴滴ES原地升级JDK17和ZGC,在这个过程中我们遇到了哪些问题,怎样解决的,以及最终上线效果如何,这篇文章就带大家深入了解。 背景 滴滴ES在2020年的时候由2.X升级到

    2024年02月13日
    浏览(38)
  • 【机器学习 | 决策树】利用数据的潜力:用决策树解锁洞察力

    🤵‍♂️ 个人主页: @AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍 🙋‍♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能硬件(虽然硬件还没开始玩,但一直

    2024年02月14日
    浏览(52)
  • 解锁ChatGLM-6B的潜力:优化大语言模型训练,突破任务困难与答案解析难题

    LLM(Large Language Model)通常拥有大量的先验知识,使得其在许多自然语言处理任务上都有着不错的性能。 但,想要直接利用 LLM 完成一些任务会存在一些答案解析上的困难,如规范化输出格式,严格服从输入信息等。 因此,在这个项目下我们参考 ChatGLM-Tuning 的代码,尝试对大

    2024年02月11日
    浏览(39)
  • 解锁Qt QListWidget的全部潜力——用最佳实践和技巧赢得用户的喜爱和赞誉!

    在现代的GUI应用程序中,列表框是必不可少的一部分。它们可以用于许多用途,例如显示文件列表、产品列表、任务列表等等。QListWidget是基于Qt框架的一个通用列表框,QListWidget提供了一种简单而易用的方式来显示一个项目列表。因此,掌握QListWidget的使用方法可以让您在开

    2024年02月07日
    浏览(39)
  • 解锁大语言模型LLM对话潜力:ChatGLM3-6B的多轮对话实践与深入探索

    随着人工智能技术的飞速发展,多轮对话系统已成为自然语言处理领域的研究热点。多轮对话要求模型不仅能理解用户的当前输入,还需结合对话历史进行连贯回复,这对模型的上下文理解和生成能力提出了更高要求。ChatGLM3-6B作为一种先进的大型语言模型,在多轮对话任务

    2024年02月22日
    浏览(56)
  • 从零开始Hadoop安装和配置,图文手把手教你,定位错误(已部署成功)

    既然你选择自己配置了,那么我想想和你聊一聊,相信我这对你整体配置Hadoop流程会有一个跟全面的了解,我们抛开繁杂的学术名词,其实就是要实现我一个任务可以在多个电脑上跑的过程(分散算力),那交给我们应该如果来搞?我们是不是要对我们的虚拟机先分配地址(

    2024年02月06日
    浏览(55)
  • Nuxt.js--》解密Nuxt.js:构建优雅、高效的现代化Vue.js应用

            博主今天开设Nuxt.js专栏,带您深入探索 Nuxt.js 的精髓,学习如何利用其强大功能构建出色的前端应用程序。我们将探讨其核心特点、灵活的路由系统、优化技巧以及常见问题的解决方案。无论您是想了解 Nuxt.js 的基础知识,还是希望掌握进阶技巧,本专栏都将满

    2024年02月16日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包