vue服务端渲染——基础

2023-05-16

文章目录

  • vue服务端渲染(基础)
  • Nuxt框架
  • 文件目录结构
  • 项目启动、打包
  • 生命周期
    • SSR
      • nuxtserverInit
      • middleware 中间件
        • 全局中间件
        • 页面级中间件
      • validate 校验参数
      • asynData校验参数
      • fetch校验参数
    • SSR,CSR
      • beforeCreate,created即跑在服务端也跑在客户端
    • CSR

nuxt官方文档: https://www.nuxtjs.cn/guide

vue服务端渲染(基础)

1初始化一个项目

npm init -y 

2.安装vue以及服务端渲染的包

npm i vue vue-server-renderer --save

3.在package.json中配置项目环境,使开发时让nodemon为我们启动一个服务端服务器。通过npm run dev跑这个文件

"scripts":{
"dev" : "nodemon ./server.js"
}

4.创建server.js文件

const vue = require( " vue ' );
//第1步:创建一个 Vue实例
const app = new Vue({
template: `<div>hello</div>'
})
/2:创建一个renderer
const renderer = require( 'vue-server-renderer ' ).createRenderer();
//第3步:将 Vue实例渲染为HTML
// renderer.renderToString(vue实例,(错误,渲染后的html)=>{})
renderer.renderTostring(app, (err,htm1)=>{
if(err) throw err;
console.log(htm1)
})

在 2.5.0+,如果没有传入回调函数,则会返回Promise:(同第三步一样的效果)
renderer.renderTostring(app).then(htm1=>{
console.log(htm1)
}).catch(err=>{console.log(err)})

搭建node服务器(最终页面数据)

  • 安装express
npm i express --save
const vue = nequire( "vue " );
const server = require( "express ');//搭建node服务器
// express响应   对服务器做根请求响应
server.get( ' / ',(req,res)=>{
//第1步:创建一个 Vue实例
const app = new Vue({
template: `<div>hello</div>'
})
/2:创建一个renderer
const renderer = require( 'vue-server-renderer ' ).createRenderer();
//第3步:将 Vue实例渲染为HTML
renderer.renderTostring(app).then(htm1=>{
console.log(htm1)
res.send(html)//将渲染的类容返回给客户端
}).catch(err=>{console.log(err)})

})
server.listen(3001)//监听服务器端口

Nuxt框架

基于vue的应用框架,极简的SSR框架,能快速开发基于VUE的SSR单页面应用,同时利于SEO优化。、

1.初始化项目

 npx create-nuxt-app .

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

文件目录结构

在这里插入图片描述

项目启动、打包

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

生命周期

在这里插入图片描述

SSR

服务端通过context访问上下文,但在服务端钩子函数中不能访问客户端的window对象,没有this

nuxtserverInit

在store 文件下创建index.js

export const actions = {
nuxtserverInit(store, context){
//初始化东西到store当中
console.log( 'nuxtServerInit',store,context)
  }
}

middleware 中间件

全局中间件

  • 在nuxt.config.js中添加 中间件名
router:{
middleware : ' auth"
}

  • 中间件名需要在 middleware文件夹中去约定,定义一个auth.js模块(nuxt运行时就会找到这个模块)
export default ({istore, route, redirect, params,query ,req,res})=>{ 
//store, route, redirect, params,query ,req,res为上下文context的解构
/*
store 状态管理树
route 路由信息
redirect 后端跳转
params  客户端携带参数
query 客户端数据
req 请求头
res  响应体
*/
// context服务端上下文
//全局守卫业务
console.log('middleware  nuxt.config outside')

页面级中间件

在pages文件夹下建index.vue 写入

<script>
import Logo from '~fcomponents/Logo.vue '
export default {
//middleware: "auth'
middleware(){
console.iog("middleware pages")
  },
components: {
Logo
 },
}
</script>

validate 校验参数

写在页面级中pages文件夹下的index.vue

//参数的有效性
validate({params ,query}){
//校验业务
console.log("validate")
return true;
},

asynData校验参数

写在页面级中pages文件夹下的index.vue

//读数据,返回给组件
asyncData(context){
//异步业务逻辑,读取服务端数据
console.log('asyncData')
return {
b:2
  }
},  

fetch校验参数

写在页面级中pages文件夹下的index.vue

//读数据, vuex
fetch({store}){
//异步业务逻辑,读取服务端数据提交给vuex
console.log( 'fetch') 
}

SSR,CSR

beforeCreate,created即跑在服务端也跑在客户端

写在页面级中pages文件夹下的index.vue

//SSR && CSR
beforeCreate(){
console.log('beforecreate' )
},
created(){
console.log( 'created' )
},

CSR

运行在客户端的生命周期函数可以访问到window this 指向组件

//CSR
beforeMount(){}, //挂载前
mounted(){},//挂载完毕
beforeUpdate(){},//跟新前
updated(){},//跟新后
beforeDestroy(){},//卸载前
destroyed(){},//卸载后
//服务端渲染 激活 失活 不存在
activated(){}
deactivated(){}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue服务端渲染——基础 的相关文章

  • Javaweb项目实践MVC入门到精通

    Javaweb项目实践MVC入门到精通 目标配置环境实体模型 user Dao的实现实体模型 ModelViewController xff1a 转发任务 xff0c 路由器的功能安全sql注入常见问题 目标 这个目标是写一个MVC模型 通
  • C++ 铪铪铪铪 烫烫烫 屯屯屯

    VS中 xff0c Debug模式下 xff0c 对于未初始化的内存 xff1a 1 xff09 若为栈内存 xff0c 默认为一连串 烫烫烫 xff0c 0xcc 2 xff09 若为堆内存 xff0c 默认为一连串 屯屯屯 xff0c
  • 创新的力量

    创新是个非常好的词 xff0c 虽然这个词已经被用滥了 xff0c 但我依然固执的认为这是一个充满了迷人光辉的词汇 如果把创新放入科技领域 xff0c 这应该是我在科技领域最喜欢的一个词了 我常常对同事或团队的成员说 xff0c 我们在做产

随机推荐

  • 魔方矩阵

    看到魔方矩阵 xff0c 好奇 xff0c 好玩儿 xff0c 正好赶上周五 xff0c 就来放松一下 xff0c 总结一下几种魔方矩阵的规律 xff0c 并写一下C 43 43 实现过程 定义 xff1a 平面魔方的一般定义 xff1a
  • 样条插值曲线类型及其优缺点说明

    Spline Types This page gives a breakdown of each spline type how to use each one and the advantages disadvantages of eac
  • caffe layer层详解

    1 基本的layer定义 xff0c 参数 1 基本的layer定义 xff0c 参数 如何利用caffe定义一个网络 xff0c 首先要了解caffe中的基本接口 xff0c 下面分别对五类layer进行介绍 Vision Layers
  • caffe编译中的python问题

    问题 usr include boost python detail wrap python hpp 50 23 fatal error pyconfig h No such file or directory 解决方案 make clea
  • latex图像注释位置

    latex图像注释的位置在左边 不知道谁把模板里的 usepackage caption 给注释掉了
  • pytorch pretrained model

    pytorch pretrained model two methods method 1 比较大小 self span class token punctuation span model span class token operato
  • 嵌入式100题(76):中断和异常的区别

    中断和异常的区别 1 异常 是指CPU内部出现的中断 即在CPU执行特定指令时出现的非法情况 同时异常也称为同步中断 因此只有在一条指令执行后才会发出中断 不可能在指令执行期间发生异常 产生的原因 程序的错误产生的 编程异常通常叫做软中断
  • 字节序、大端序与小端序及其相关转换

    大端序与小端序及其相关转换 一 字节序定义 字节序 xff0c 为字节的顺序 xff0c 就是大于一个字节类型的数据在内存中的存放顺序 xff0c 一个字节的数据当然就没有顺序可言了 xff0c 其实大部分人在实际的开发中都很少会直接和字节
  • SkeyeLive开源流媒体PC端推拉流直播软件源码功能框架解析

    SkeyeLive是OpenSKEYE开源流媒体团队开发的一款功能丰富的开源PC端流媒体推流拉流直播软件项目 xff0c 目前支持Windows Android版本 xff0c 后续将支持ios版本 xff0c 其中Windows版本的Sk
  • 融资租赁业务系统(财务中台)

    融资租赁业务系统 财务中台 产品白皮书 版本号 xff1a V1 1 李雷 微信号 xff1a yanan122914 平台概述 融资租赁财务中台产品是一套专门针对融资租赁行业设计的融资租赁财务统一解决方案 对租赁公司传统的大单回租 直租
  • InfoQ推荐语:我的梦想

    大家好 非常高兴能在这一期的架构师和大家见面 本人工作了十余载 先后在洪恩软件和用友集团任职 目前任职于用友集团瑞友科技研究院 主要关注领域 企业应用软件平台研发 领域驱动设计 OSGi 动态语言应 用 云计算 移动互联和Mac OS平台相
  • 【MySQL】------数据库连接

    分享第十九条励志语录 要想飞起来 xff0c 首先要有飞翔的信念 xff0c 如果没有这个信念 xff0c 永远不可能飞起来 但只要有了飞翔的信念 xff0c 再加上自己的努力 xff0c 就有可能能够飞起来 成功也是这样 xff0c 要想
  • 无人机调试记录(一)

    无人机调试记录 xff08 一 xff09 固件 xff1a PX4 地面站 xff1a QGC APM xff08 pixhawk xff09 飞控疑难杂症解决方法汇总 校准 1 确保陀螺仪 水平线校准正确 如果校准完成后 xff0c Q
  • VsCode中使用git

    你是否厌倦了每天早上到公司都要打开git 小黑框 执行git clone 地址去拉取代码 而强大的VsCode只需要点一下即可解决 1 添加到暂存区 xff0c 更改文件以后可以发现 点进去上图这个标志 如果没有 xff0c 右击左侧菜单栏
  • 虚拟机上无法运行ubuntu自带的gazebo仿真器报VMware: vmw_ioctl_command error 无效的参数

    问题说明 xff1a 虚拟机版本 xff1a VMware Workstation 16 Pro Ubuntu版本 xff1a Ubuntu 18 04 现象 xff1a gazebo闪退 xff0c 并报 VMware vmw ioctl
  • NVIDIA JETSON TX2镜像制作以及刷机流程

    一 安装环境准备 xff1a Ubuntu宿主主机一台 xff0c TX2新老板子各一个 xff08 老的用来镜像备份 xff0c 用这个镜像给新的刷机 xff09 xff0c USB Micro USB线一根 1 下载TX2驱动 直接在百
  • 各种排序混合---冒泡排序、选择排序、插入排序

    冒泡排序 不多说 xff0c 看代码 xff0c 就是把最大的数字或者最小的数字沉到最右边 xff0c 最后输出数组 include lt iostream gt include lt stdlib h gt include lt math
  • 【PyQt5】串口数据实时绘图

    常见的串口调试助手一般只有简单的文本界面 xff0c 偶然看到 Arduino IDE 自带的串口绘图工具 xff0c 觉得用户设计挺友好 想着利用一下周末空闲时间 xff0c 用 PyQt5 实现一个串口数据实时绘图小工具 xff0c 在
  • HTTPS、HTTPS、SSH、MSTSC等常用网络服务的端口号

    前言 今天在 powershell下使用curl命令访问 一个网址 返回 443 port 相关的错误信息 xff0c 我第一眼看 xff0c 还以为是HTTP STATUS CODE 于是去查了一会儿才发现 xff0c 是端口号的问题 下
  • vue服务端渲染——基础

    文章目录 vue服务端渲染 xff08 基础 xff09 Nuxt框架文件目录结构项目启动 打包生命周期SSRnuxtserverInitmiddleware 中间件全局中间件页面级中间件 validate 校验参数asynData校验参数