vue.js状态管理和服务端渲染

状态管理

vuejs状态管理的几种方式
  1. 组件内管理状态:通过data,computed等属性管理组件内部状态

  2. 父子组件通信:通过props和自定义事件实现父子组件状态的通信和传递

  3. 事件总线eventBus:通过new Vue()实例,实现跨组件通信

    vue3已经移除该api
    
  4. provide/inject:通过provide/inject实现父组件和后代组件的跨层级通信

  5. 状态管理库:Vuex/Pinia

状态管理库的核心概念(以pinia为例)
  • State
  • Getter
  • Action

(源码仓库:https://github.com/vuejs/pinia/blob/v2/packages/pinia/src/createPinia.ts)
在这里插入图片描述

后果脚后跟计划骨结核几何画板
插件系统:

const app = createApp(App)
const pinia = createPinia()
function myUseFn(){
	return {
		num:10
	}
}
pinia.use(myUseFn)
app.use(pinia)

服务端渲染

基本概念
  • CSR(Client Side Rendering) 客户端渲染
  • SSR(Server Side Rendering)服务端渲染
  • SSG (Static Site Generation)静态站点生成
  • ISR(Incremental Static Regeneration)增量静态再生
vuejs服务端渲染的原理
  1. 创建服务端vue实例
  2. 处理请求和路由 controller
  3. 数据预获取 状态同步
  4. 生成HTML字符串 renderToString
  5. 客户端接受HTML
  6. 客户端激活 Hydaration
如何实现前后端状态同步
  1. 安装并创建Pinia实例
  2. 使用defineStore定义store
  3. 服务端数据预获取,修改store中的state的值
  4. 状态同步,服务端状态序列化成字符串挂载到window.__PINIA_STATE__变量上,客户端激活应用时从HTML解析状态,注入到pinia实例中
SSR优点和缺陷
  • 优点

     1、更快的首屏渲染
     2、更好的搜索引擎优化SEO
     3、更好的内容预览
    
  • 缺点

     1、服务器负载增加
     2、复杂度增加,需要考虑代码的同构问题和第三方库是否支持在服务端运行
     3、复杂的构建和部署配置
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/635125.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

个人博客网站开发笔记2

文章目录 前言p2 hexo安装与使用安装 Nodejs安装 GitGit Bash的使用,代码克隆Clone p3 写作一级标题二级标题三级标题四级标题五级标题六级标题 前言 现在继续看教程 p2 hexo安装与使用 link 啊有点难受,开幕就是需要自己先安装Nodejs和Git&#xff…

git使用介绍

一、为什么做版本控制(git是版本控制工具) 为了保留之前所以的版本,以便回滚和修改 二、点击安装 三、基础操作 1、初步认识 想要让git对一个目录进行版本控制需要以下步骤: 进入要管理的文件夹进行初始化命令 git init管理…

el-table 组件实现 “合并单元格 + N行数据小计” 功能

目录 需求 - 要实现的效果初始代码代码升级(可供多个表格使用)CommonTable.vue 子组件 使用子组件1 - 父组件 - 图1~图3使用效果展示 使用子组件2 - 父组件 - 图4使用效果展示 注意【代码优化 - 解决bug】 需求 - 要实现的效果 父组件中 info 数据示例 …

Redis篇 浅谈分布式系统

分布式系统 一. 单机架构二.分布式系统引入三.引入更多的应用服务器四.读写分离五.引入缓存服务器六. 将数据库服务器拆分七.微服务架构 一. 单机架构 单机架构,就是用一台服务器,完成所有的工作. 这时候就需要我们引入分布式系统了. 分布式系统是什么含义呢?就是由一台主机服…

MySQL实战——主从异步复制搭建(一主一从)

一、搭建前的准备 主库 192.168.1.76 从库 192.168.1.77 二、搭建 1、编辑配置文件 vi /etc/my.cnf 主库 [mysqld] log-binmysql-bin server-id1 从库 [mysqld] server-id2 2、在主库创建复制用户 create user repl192.168.1.77 identified by repl123; grant replic…

9、QT—SQLite使用小记

前言 开发平台:Win10 64位 开发环境:Qt Creator 13.0.0 构建环境:Qt 5.15.2 MSVC2019 64位 sqlite版本:sqlite3 文章目录 一、Sqlite是什么二、sqlite使用步骤2.1 下载2.2 安装2.3 使用 三、Qt集成sqlite33.1 关键问题3.2 封装sql…

C#, PCANBasicd.dll库读写CAN设备数据

PCAN-Basic是一个简单的 PCAN 系统编程接口。 通过 PCAN-Basic Dll,可以将自己的应用程序连接到设备驱动程序和 PCAN 硬件,以与 CAN 总线进行通信。支持C、C++、C#、Delphi、JAVA、VB、Python等语言。 PCAN-Basic库和驱动下载地址 ​ ​https://www.peak-system.com/filead…

【C#】未能加载文件或程序集“CefSharp.Core.Runtime.dll”或它的某一个依赖项。找不到指定的模块。

欢迎来到《小5讲堂》 这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 背景错误提示分析原因解决方法Chromium知识点相关文章 背景 最近在使…

LeetCode 131题详解:高效分割回文串的递归与动态规划方法

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航: LeetCode解锁100…

Shell编程之条件判断语句

目录 一、条件判断 1、test命令 2、文件测试 3、整数值比较 4、字符串判断 5、逻辑测试 二、if语句 1、if单分支语句 2、双分支语句 3、多分之语句 4、case 分支语句 一、条件判断 Shell环境根据命令执行后的返回状态值(echo $?)来判断是否执行成…

力扣刷题---1748.唯一元素的和【简单】

题目描述 给你一个整数数组 nums 。数组中唯一元素是那些只出现 恰好一次 的元素。 请你返回 nums 中唯一元素的 和 。 示例 1: 输入:nums [1,2,3,2] 输出:4 解释:唯一元素为 [1,3] ,和为 4 。 示例 2:…

基于BERT的医学影像报告语料库构建

大模型时代,任何行业,任何企业的数据治理未来将会以“语料库”的自动化构建为基石。因此这一系列精选的论文还是围绕在语料库的建设以及自动化的构建。 通读该系列的文章,犹如八仙过海,百花齐放。非结构的提取无外乎关注于非结构…

电路笔记 :元器件焊接相关 酒精灯松香浴加热取芯片

记录一下只使用松香和小火源加热(如酒精灯、小蜡烛)从电路板中取芯片。 过程 多放松香 让松香淹没芯片尽量均匀加热,等芯片旁边的松香开始从芯片里冒细小的“泡泡”,就差不多了 注:这种方法也可以用于焊接&#xff0…

UBUNTU22.04无法安装nvidia-driver-550 依赖于 nvidia-dkms-550 (<= 550.54.15-1)

类似的报错信息,就是卡在了nvidia-dkms-550无法安装 Loading new nvidia-550.40.07 DKMS files… Building for 6.5.0-15-generic Building for architecture x86_64 Building initial module for 6.5.0-15-generic ERROR: Cannot create report: [Errno 17] File e…

VLAN创建及配置

V-- 虚拟 LAN ---局域网 ---地理覆盖范围较小的网络 MAN ---城域网 WAN ---广域网 VLAN ---虚拟局域网 --- 交换机和路由器协同工作后,将原先的一个广播域,逻辑上切分为多个 第一步:创建VLAN [Huawei]display vlan---查看VLAN信息 VID -- VLAN ID ----…

DNS域名解析与智能选路

要开始访问公网了!! 你在访问百度的时候,你也不知道百度的IP地址是啥,你只知道他的域名是baidu AD这台设备可以做入站的负载平衡,AD来选择你访问的时候是用联通网还是电信网,避免卡顿 pc并不会域名解析&…

[算法] 优先算法(二): 双指针算法(下)

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (91平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀Java …

Python TCP编程简单实例

客户端:创建TCP链接时,主动发起连接的叫做客户端 服务端:接收客户端的连接 连接其他服务器 可以通过tcp连接其他服务器。 示例: import socket# 1.创建一个socket # 参数1:指定协议 AF_INET(ipv4&#…

ftp是什么,ftp能做什么,ftp有什么用 -----在Windows搭建ftp服务器

大家好,我是风屿,今天教大家如何从零开始搭建一台属于自己的ftp,本期教大家搭建Windows客户端的,后面是linux的 首先第一步要有一台联网的Windows电脑 1打开控制面板,找到程序,点击打开或关闭Windows功能…

MQTT 5.0 报文解析 05:DISCONNECT

欢迎阅读 MQTT 5.0 报文系列 的第五篇文章。在上一篇中,我们已经介绍了 MQTT 5.0 的 PINGREQ 和 PINGRESP 报文。现在,我们将介绍下一个控制报文:DISCONNECT。 在 MQTT 中,客户端和服务端可以在断开网络连接前向对端发送一个 DIS…