位置: IT常识 - 正文

体验Vue3的SSR框架 - Nuxt3(vue3ts)

编辑:rootadmin
体验Vue3的SSR框架 - Nuxt3 SSR 与 Nuxt

推荐整理分享体验Vue3的SSR框架 - Nuxt3(vue3ts),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue ssr axios,vue3 swr,vue ssr axios,vuejs ssr,vue ssr seo,vue-ssr,vue-ssr,vue ssr框架,内容如对您有帮助,希望把文章链接给更多的朋友!

SSR 是 Server-Side Rendering,即服务端渲染的英文缩写。

Vue.js 是一个用于构建客户端应用的框架。默认情况下,Vue 组件的职责是在浏览器中生成和操作 DOM。在客户端是单页应用 (SPA) 。

也可以将 vue 程序在服务端渲染,渲染完成再返回给浏览器,最后在浏览器端将返回的 HTML 激活(hydrate),这个过程就是 SSR。

用 SSR 的好处:

更快的首屏加载更好的 SEO

构建一套完整的 SSR 应用会很复杂,Nuxt 很好的解决了这个问题,让 Vue 的服务端渲染变得更加简单。

Nuxt 是一个构建于 Vue 生态系统之上的全栈框架,它为编写 Vue SSR 应用提供了丝滑的开发体验。还可以把它当作一个静态站点生成器来用!简单来说, Nuxt 是 Vue服务端渲染的通用解决方案。

Nuxt2 版本是基于 Vue2.x 版本的,Nuxt3 版本是基于 Vue3.x 版本的,目前 Nuxt3处于RC版本。本文基于 Nuxt3,官网传送门。

前置准备开发工具:VS CodeVS Code插件:Vue Language Features(Volar)VS Code插件:TypeScript Vue Plugin(Volar)node版本需要高于v14.16.0安装

创建项目:

pnpm dlx nuxi init learn-nuxt3

进入项目目录:

cd learn-nuxt3

安装依赖:

pnpm install --shamefully-hoist

启动项目:

pnpm run dev入口组件

app.vue 是 Nuxt3 的入口组件,在 Nuxt3 中如果没有pages/目录,则表示不会包含vue-router依赖。不需要路由就可以这样做。

<template><div>Hello Nuxt3!</div></template>

当应用需要使用路由时,就要在根目录下创建pages文件夹目录。此时,需要使用 <NuxtPage> 路由出口组件:

<template><div><!-- 路由出口 --><NuxtPage/></div></template>

在我们的项目根目录下创建 pages 目录,并修改 app.vue 文件。

路由

创建了pages文件夹目录后,Nuxt会自动集成vue-router,并根据pages目录下的文件名自动生成路由。这种形式称为 约定路由。

pages 目录下创建 index.vue 为默认页,创建 about.vue:

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

此时访问 http://localhost:端口号/about,就会进入 关于我们 的页面,表明 Nuxt 已经为我们自动生成路由了。访问 http://localhost:端口号 就是默认的 index.vue 页面。

动态路由

把动态的参数放到[]中括号中,会生成动态路由。

体验Vue3的SSR框架 - Nuxt3(vue3ts)

创建user/[id].vue:

<template><div><h1>用户页</h1></div></template><script setup lang="ts"></script>

访问 http://localhost:端口号/user/xxx,会进入到 用户页。

直接访问 http://localhost:端口号/user,会出现404页面,此时可以 创建 user/index.vue 作为默认页。

也可以将[]应用到文件夹名称上或者混合使用,如:user-[role] user-[id].vue。

路由参数$route.params 获取路由参数,例如:/user/1,可以得到{ id: 1 }对象$route.query 获取query参数,例如:/user/1?name=tom,可以得到{ name: 'tom' }对象<template><div><h1>用户页</h1><p>用户id:{{ $route.params.id}}</p></div></template>

在 js 中使用路由参数,可以通过 Vue3 setup 中的useRoute方法:

<script setup lang="ts">const route = useRoute()console.log(route.params)console.log(route.query)</script> 路由跳转

Nuxt3 中路由跳转可以使用 <NuxtLink> 组件进行跳转。

user/index.vue中:

<div><h1>用户默认页</h1><NuxtLink to="user/1">用户1</NuxtLink> |<NuxtLink to="user/2">用户2</NuxtLink> |<NuxtLink to="user/3">用户3</NuxtLink></div>嵌套路由目录和文件同名 (同级目录下)使用 <NuxtChild> 组件作为子组件出口,类似于 vue-router 中的 <RouterView>

在根目录下新建 parent 文件夹目录 和 parent.vue 文件,在 parent 下新建 child.vue,目录结构如下:

-| pages/---| parent/------| child.vue---| parent.vue

parent/child.vue

<template><div><h6> pages/parent/child.vue </h6></div></template><script setup lang="ts"></script>

parent.vue

<template><div class="box"><h1> pages/parent.vue </h1><NuxtChild /></div></template><script setup lang="ts"></script><style> .box {border: 2px solid #aa0089;} </style>

此时可以访问 http://localhost:端口号/parent/child,显示 child.vue 的内容。

当然也可以在 parent 目录下新建 index.vue,访问 http://localhost:端口号/parent时就会默认显示 pages/parent.vue 和 parent/index.vue 嵌套的内容。如果没有这个 parent/index.vue,访问 /parent 时,就只会显示 pages/parent.vue 的内容。

页面head元素处理

设置页面标题:

<Title> 标签<Title>关于我们</Title>useHead 方法,可以为页面设置标题、meta信息等 useHead({title: '关于我们-'})

使用自带的模板方法:

useHead({title: '关于我们-',titleTemplate(title) {return title ? `xx网站 - ${title}` : 'xx网站'},})

添加meta信息:

useHead({// ...meta: [{ name: 'description', content: '网页的描述'},{ name: 'keywords', content: '关键字1'},]})

给 body 添加 class样式:

<style> .red {color: red;} </style> useHead({// ...bodyAttrs: {class: 'red'}})

加载js文件:

useHead({// ...script: [{src: 'assets/a.js',body: true}]})静态资源文件

根目录下新建 public 和 assets 文件用于存放静态资源文件,将两个目录下都放上一张1.png的图片,在 about 页面中使用:

<!--assets --><img src="~/assets/1.png" alt=""><!-- public --><img src="/1.png" alt="">可复用逻辑

将可复用的逻辑存放在composables目录下,会被自动识别导入到应用程序,以便在全局范围内使用。

新建 composables/useAge.ts:

export const useAge = () => {return useState('age', () => 18)}

使用:

<script setup lang="ts">const age = useAge()console.log(age.value)</script> 最后

为大家准备了一个前端资料包。包含54本,2.57G的前端相关电子书,《前端面试宝典(附答案和解析)》,难点、重点知识视频教程(全套)。 有需要的小伙伴,可以点击下方卡片领取,无偿分享

本文链接地址:https://www.jiuchutong.com/zhishi/297409.html 转载请保留说明!

上一篇:前端传递对象参数,以及后端接受参数 @PathVariable @RequestParam @RequestBody 注解的使用(前端向后端传递对象数组)

下一篇:论文笔记:TIMESNET: TEMPORAL 2D-VARIATION MODELINGFOR GENERAL TIME SERIES ANALYSIS(论文笔记整理软件)

  • 有多少“不得已”,最后成了“大欢喜”(有多少不得已来不及还流浪在梦里)

    有多少“不得已”,最后成了“大欢喜”(有多少不得已来不及还流浪在梦里)

  • iphone12支持微距拍摄吗(iphone 12 微距)

    iphone12支持微距拍摄吗(iphone 12 微距)

  • 京东删除订单记录后还能找回吗(京东删除订单记录客服能看到吗)

    京东删除订单记录后还能找回吗(京东删除订单记录客服能看到吗)

  • 接种加强针健康码会显示吗(接种加强针健康码有钻石)

    接种加强针健康码会显示吗(接种加强针健康码有钻石)

  • OPPO Ace2能使用两张电信卡的吗(oppoace2可以插几张卡)

    OPPO Ace2能使用两张电信卡的吗(oppoace2可以插几张卡)

  • 苹果11pro max屏幕黄怎么调

    苹果11pro max屏幕黄怎么调

  • 拼多多答题卡怎么回事(拼多多上答题能赚钱是真的吗)

    拼多多答题卡怎么回事(拼多多上答题能赚钱是真的吗)

  • ar人工智能模型训练一般采用什么计算机(基于人工智能的ar vr 应用开发)

    ar人工智能模型训练一般采用什么计算机(基于人工智能的ar vr 应用开发)

  • 没有电脑能用爱思验机吗(没有电脑能用爱思验ipad吗)

    没有电脑能用爱思验机吗(没有电脑能用爱思验ipad吗)

  • 如何让一个微信好友看你的朋友圈(如何让一个微信群秒封)

    如何让一个微信好友看你的朋友圈(如何让一个微信群秒封)

  • 爱玛原装电池什么牌子(爱玛电动车原装电池怎么样)

    爱玛原装电池什么牌子(爱玛电动车原装电池怎么样)

  • 进网试用是什么意思(进网试用是什么意男)

    进网试用是什么意思(进网试用是什么意男)

  • 抖音怎么给对方发红包(抖音怎么给对方发微信号码)

    抖音怎么给对方发红包(抖音怎么给对方发微信号码)

  • 笔记本密码对了连不上(笔记本密码对了进不去)

    笔记本密码对了连不上(笔记本密码对了进不去)

  • 小度识别不到无线网(小度识别不到无线耳机)

    小度识别不到无线网(小度识别不到无线耳机)

  • 为什么新买的电脑很卡(为什么新买的电脑office不能用)

    为什么新买的电脑很卡(为什么新买的电脑office不能用)

  • 苹果11pro几寸(苹果手机11pro几寸)

    苹果11pro几寸(苹果手机11pro几寸)

  • 指纹硬件无法使用怎么回事(指纹硬件无法使用了)

    指纹硬件无法使用怎么回事(指纹硬件无法使用了)

  • ppt2010默认视图是哪种

    ppt2010默认视图是哪种

  • 华为荣耀v30的返回键在哪里(荣耀v30返回界面的两种设置)

    华为荣耀v30的返回键在哪里(荣耀v30返回界面的两种设置)

  • 微处理器的主要任务包括(微处理器的主要性能指标是其体积的大小对不对)

    微处理器的主要任务包括(微处理器的主要性能指标是其体积的大小对不对)

  • icp备案收费吗(icp备案需要多久)

    icp备案收费吗(icp备案需要多久)

  • 小米6x支持qc4.0快充吗

    小米6x支持qc4.0快充吗

  • 华为手机安全中心在哪(华为手机安全中心)

    华为手机安全中心在哪(华为手机安全中心)

  • mate30pro有呼吸灯吗(华为mate30pro呼吸灯设置)

    mate30pro有呼吸灯吗(华为mate30pro呼吸灯设置)

  • wps文本框链接怎么设置(wps文字链接)

    wps文本框链接怎么设置(wps文字链接)

  • 触宝如何找聊天的朋友(触宝软件)

    触宝如何找聊天的朋友(触宝软件)

  • JEECG微服务架构配置和运行(微服务架构java框架)

    JEECG微服务架构配置和运行(微服务架构java框架)

  • 个体工商户月销售额超10万怎么报税
  • 发票冲红重开,重开时是按新税率还是旧税率
  • 未出资到位的股东
  • 公司银行未开户税务也没开需要做工商年报吗
  • 单位借款是否纳税
  • 测绘费发票需要备注么
  • 海运的发票可以抵税吗
  • 以前年度损益调整在利润表中怎么填
  • 一般纳税人增值税申报操作流程
  • 对于子女继承父母的评价
  • 哪些支出允许在企业所得税前扣除
  • 房产折旧计算方法 举例
  • 应交税费怎么做分录
  • 存货转固定资产的时点
  • 个人怎么捐赠物资
  • 收到别人的承兑怎么入账
  • 印花税,车船税通过应交税金科目吗
  • 限制性股票科目
  • 补缴所得税要调账吗
  • 计提坏账准备,坏账准备是增加还是减少
  • 公司的钱怎么转出来
  • 发票金额开错说明如何书写?
  • 物业公司怎么开展业务
  • 工程质保金扣除
  • 安置房账务处理
  • 没有及时去做财务会计制度备案怎么办?
  • 个人独资企业需要缴纳哪些税种
  • 企业未成立工会需要交工会经费吗
  • 英雄联盟登录失效怎么回事
  • 路由器管家怎么登录
  • 固定资产资产评估
  • 新会计准则职工薪酬解读
  • php中的类
  • 企业职工工伤赔偿标准税前扣除
  • 公司员工意外险怎么买
  • 小规模纳税人的企业所得税税率
  • 企业的税收优惠政策有哪些
  • 营改增后房租收入怎么交税
  • 材料暂估入账
  • 权益法转成本法为什么用账面价值
  • 年终双薪是底薪吗
  • php转换器
  • vue父子组件传值方法
  • 农产品加计扣除1%怎么计算和会计分录
  • is not defined at HTMLInputElement.onclick
  • 快速上手:华硕路由器的wireguard服务器
  • webpack devserver contentbase
  • 外经证过期没核销罚多少钱
  • lftp shell
  • 酒店会计科目及账务处理视频
  • 普通发票作废要做账吗
  • 现金预算表中的归还借款和支付利息怎么算
  • 劳务报酬的个人所得税
  • mysql几千万条数据
  • 金税四期对企业纳税管理影响分析
  • 应纳税调增调减科目是什么
  • 以融资租赁形式的车贷没还上可以拖车吗
  • 单位交社保怎么取消居民医保
  • 汇算期间取得以下收入
  • 什么叫摊销
  • 小规模其他业务收入交多少税率
  • 远程认证软件可以卸载吗
  • 三证合一后还有纳税人资格证吗
  • 怎么快速隐藏电脑下方一排
  • win8系统升级
  • 删除windows.edb
  • mac如何查看隐藏的文件夹
  • win10升级2020
  • tr linux 命令
  • bash脚本语法
  • jquery获取表格一列的值
  • cd弹出错误怎么回事
  • jquery 属性
  • 安卓绘图软件推荐
  • linux 打包
  • jQuery实现磁力图片跟随效果完整示例
  • Python使用dis模块把Python反编译为字节码的用法详解
  • 北京市地方税务局发票查验
  • 电子专用发票怎么申请领用
  • 安徽省地方税务局刘利庆
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设