前端框架NUXT

前端框架NUXT

一、服务端渲染技术NUXT

1、什么是服务端渲染

服务端渲染又称SSR (Server Side Render)是在服务端完成页面的内容,而不是在客户端通过AJAX获取数据。

服务器端渲染(SSR)的优势主要在于:更好的 SEO,由于搜索引擎爬虫抓取工具可以直接查看完全渲染的页面。

如果你的应用程序初始展示 loading 菊花图,然后通过 Ajax 获取内容,抓取工具并不会等待异步完成后再进行页面内容的抓取。也就是说,如果 SEO 对你的站点至关重要,而你的页面又是异步获取内容,则你可能需要服务器端渲染(SSR)解决此问题。

另外,使用服务器端渲染,我们可以获得更快的内容到达时间(time-to-content),无需等待所有的 JavaScript 都完成下载并执行,产生更好的用户体验,对于那些「内容到达时间(time-to-content)与转化率直接相关」的应用程序而言,服务器端渲染(SSR)至关重要。

2、什么是NUXT

Nuxt.js 是一个基于 Vue.js 的轻量级应用框架,可用来创建服务端渲染 (SSR) 应用,也可充当静态站点引擎生成静态站点应用,具有优雅的代码结构分层和热加载等特性。

官网网站:

https://zh.nuxtjs.org/

二、NUXT环境初始化

1、下载压缩包

https://github.com/nuxt-community/starter-template/archive/master.zip

2、修改package.json

name、description、author(必须修改这里,否则项目无法安装)

 "name": "guli",
 "version": "1.0.0",
 "description": "",
 "author": "Helen <55317332@qq.com>",

3、修改nuxt.config.js

修改title: ‘{{ name }}’、content: ‘{{escape description }}’

这里的设置最后会显示在页面标题栏和meta数据中

head: {
    title: '',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'keywords', name: 'keywords', content: '' },
      { hid: 'description', name: 'description', content: '' }
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
    ]
},

4、在命令提示终端中进入项目目录

5、安装依赖

npm install

img

6、测试运行

npm run dev

7、NUXT目录结构

(1)资源目录 assets

用于组织未编译的静态资源如 LESS、SASS 或 JavaScript。

(2)组件目录 components

用于组织应用的 Vue.js 组件。Nuxt.js 不会扩展增强该目录下 Vue.js 组件,即这些组件不会像页面组件那样有 asyncData 方法的特性。

(3)布局目录 layouts

用于组织应用的布局组件。

(4)页面目录 pages

用于组织应用的路由及视图。Nuxt.js 框架读取该目录下所有的 .vue 文件并自动生成对应的路由配置。

(5)插件目录 plugins

用于组织那些需要在 根vue.js应用 实例化之前需要运行的 Javascript 插件。

(6)nuxt.config.js 文件

nuxt.config.js 文件用于组织Nuxt.js 应用的个性化配置,以便覆盖默认配置。

三、幻灯片插件

1、安装插件

npm install vue-awesome-swiper

2、配置插件

在 plugins 文件夹下新建文件 nuxt-swiper-plugin.js,内容是

import Vue from 'vue'
import VueAwesomeSwiper from 'vue-awesome-swiper/dist/ssr'
Vue.use(VueAwesomeSwiper)

在 nuxt.config.js 文件中配置插件

将 plugins 和 css节点 复制到 module.exports节点下

module.exports = {
  // some nuxt config...
  plugins: [
    { src: '~/plugins/nuxt-swiper-plugin.js', ssr: false }
  ],

  css: [
    'swiper/dist/css/swiper.css'
  ]
}

启动会报异常

`ERROR Could not compile template E:\java\JavaWorkSpace\OnlineEducation\WebReview\vue-front-1010\node_modules\@nuxt\vue-app\template\App.js: Cannot resolve "swiper/dist/css/swiper.css" from "E:\java\JavaWorkSpace\OnlineEducation\WebReview\vue-front-1010\swiper\dist\css\swiper.css"

at node_modules@nuxt\builder\dist\builder.js:6057:17
at async Promise.all (index 0)
at async Builder.compileTemplates (node_modules@nuxt\builder\dist\builder.js:6035:5)
at async Builder.generateRoutesAndFiles (node_modules@nuxt\builder\dist\builder.js:5722:5)
at async Builder.build (node_modules@nuxt\builder\dist\builder.js:5634:5)
at async Object._buildDev (node_modules@nuxt\cli\dist\cli-dev.js:106:5)
at async Object.startDev (node_modules@nuxt\cli\dist\cli-dev.js:64:7)
at async Object.run (node_modules@nuxt\cli\dist\cli-dev.js:51:5)
at async NuxtCommand.run (node_modules@nuxt\cli\dist\cli-index.js:2811:7)`

https://www.cnblogs.com/Courage129/p/14022269.html

是因为因为我们导入的import 'swiper/css/swiper.css'在低版本中有,Swiper 6.0.0或者更高版本就不是这个导入地址了,所以解决方案有两种:

方案一:
导入import 'swiper/swiper-bundle.css', 同时删除import 'swiper/css/swiper.css'

方案二:
把安装的vue-awesome-swiper版本回退到低版本,这样就可以保留import 'swiper/css/swiper.css':
指令为: npm i vue-awesome-swiper@3.1.3 --save

或者 将package.js里面的dependencies下的"vue-awesome-swiper": "^4.x.x(是swiper 6.x)"改为3.1.3,然后npm install
在之后启动还会报一个错:

potentially fixable with the --fix option

解决办法:

找到 nuxt.config.js在extend (config, { isDev, isClient }) {}括号内最后面添加options: {

fix: true

}

也就是:
extend (config, { isDev, isClient }) { if (isDev && isClient) { config.module.rules.push({ enforce: 'pre', test: /\.(js|vue)$/, loader: 'eslint-loader', exclude: /(node_modules)/, options: { fix: true } }) } }

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3和Nuxt 3是两个不同的框架,有一些区别。 Vue 3是最新版本的Vue.js框架,它在性能和开发体验方面进行了许多改进。它引入了Composition API,这是一种更灵活和可重用的代码组织方式,使得在组件中更容易管理和共享逻辑。此外,Vue 3还通过Proxy代理实现了更高效的响应式系统,并提供了一些新的内置指令和组件。 Nuxt 3是基于Vue 3构建的下一代Nuxt.js框架。与之前的版本相比,Nuxt 3采用了更现代化的开发方式,并且在性能和开发体验方面有所提升。Nuxt 3引入了ESM模块系统,可以更好地利用现代JavaScript的功能。它还提供了更好的编译时类型检查和类型推断支持,提高了开发效率。此外,Nuxt 3还引入了更灵活的路由和布局系统,使得构建复杂的应用程序更加容易。 总结一下,Vue 3是Vue.js的最新版本,而Nuxt 3是基于Vue 3的下一代Nuxt.js框架。它们都在性能和开发体验方面有所改进,并引入了一些新的特性和功能。无论是在单独使用Vue还是在构建通用应用程序时,都可以根据具体需求选择使用Vue 3或Nuxt 3。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [前端框架 Nuxt3 Vue3 SSR 总结](https://blog.csdn.net/qq_50909707/article/details/128288693)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值