首页 > 其他分享 >Feature flag __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ is not explicitly defined.

Feature flag __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ is not explicitly defined.

时间:2024-04-08 16:23:16浏览次数:26  
标签:__ explicitly VUE MISMATCH HYDRATION DETAILS PROD

由于defineModel在vue3.4版本才能使用,原有项目依赖为 "vue": "^3.3.4", "@vitejs/plugin-vue": "^4.1.0", 升级项目中vue版本后出现如下警告:

  Feature flag __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ is not explicitly defined.
  You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.

按照提示大概意思就是:

  此__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ 未被明确定义。您正在运行Vue的esm-bundler构建版本,这个版本期望在编译时通过bundler配置全局注入这些特性标志,以便在生产捆绑包中获得更好的tree-shaking效果。

__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ 概述?
  在Vue 3.4版本中引入了特性标志__VUE_PROD_HYDRATION_MISMATCH_DETAILS__,是一个编译时的特征标志(feature flag),它用于控制在生产环境下服务器端渲染(SSR)过程中hydration(水合)阶段的错误处理行为。
  在Vue应用进行SSR时,服务器会预先生成HTML字符串发送到客户端,然后客户端的JavaScript执行时会对这个静态HTML进行 hydration,即把静态HTML转换成可响应数据变化的动态DOM。
  在这个过程中,如果服务器生成的初始HTML结构与客户端Vue组件渲染出的结构不匹配,就会发生hydration不匹配错误。
  默认情况下,在生产环境中,Vue通常会简化这类错误报告以提高性能和减少包体积。然而,启用 __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ 标志后,即使在生产环境下,当发生hydration不匹配错误时,Vue也会输出详细的错误信息,这对于调试和排查此类问题非常有用。

如何消除此警告?

方式一:手动明确定义
    vite
        import { defineConfig } from "vite";
        export default defineConfig({
          define: {
            __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: "true",
          },
        });
    
    webpack
        // webpack.config.js
        const webpack = require('webpack');

        module.exports = {
          // ...
          plugins: [
            new webpack.DefinePlugin({
              '__VUE_PROD_HYDRATION_MISMATCH_DETAILS__': JSON.stringify(true),
            }),
          ],
        };

方式二:升级@vitejs/plugin-vue 
    "vue": "^3.4.21",
    "@vitejs/plugin-vue": "^5.0.4"

 

  

标签:__,explicitly,VUE,MISMATCH,HYDRATION,DETAILS,PROD
From: https://www.cnblogs.com/changxue/p/18121591

相关文章

  • 高性价比国产安全MCU-LKT6850
    LKT6850是一款以32位ARMCortexTM-M0处理器内核为基础的高性价比安全MCU。LKT6850具有最高64KBFlash、4KBRAM、48MHZ工作频率,具有丰富的外设资源供开发人员使用。芯片可实现DES/3DES/AES/SM4等对称算法,可实现多种安全身份认证、数据加解密等功能。该产品广泛应用于各种产品和行业......
  • 建立时间(setup time)和保持时间(hold time)
    一、基本概念1、建立时间就是时钟触发事件来临之前,数据需要保持稳定的最小时间,以便数据能够被时钟正确的采样。2、保持时间就是时钟触发事件来临之后,数据需要保持稳定的最小时间,以便数据能够被电路准确的传输。可以通俗的理解为:时钟到来之前,数据需要提前准备好;时钟到来之后,数据......
  • 行业代码补充
    很简陋。。。就这样子吧。。只根据大类来编码,不区分中小类了。。。国民经济行业分类(大类)里面有敏感词,贴不出来,要的话去这篇文章下载吧:中国国民经济行业分类数据下载(含爬取代码)-田智凯-博客园(cnblogs.com)我是直接模糊查询了,因为给出的行业不规范。importpandasaspd......
  • Kingbase-KDTS数据迁移mysql_to_kingbase
    一、启动kingbase服务cd/opt/Kingbase/ES/V8/Server/bin/启动 ./sys_ctlstart-D/opt/Kingbase/ES/V8/data/停止 ./sys_ctlstop-D/opt/Kingbase/ES/V8/data/ 二、启动kingbase自带的DTS数据同步服务cd  /opt/Kingbase/ES/V8/ClientTools/guitools/KDts/KDTS-WEB......
  • Drools业务规则管理系统25_Spring整合Drools7
    一、Spring简单整合Drools在项目中使用Drools时往往会跟Spring整合来使用。具体整合步骤如下:1、创建maven工程drools_spring并配置pom.xml2、创建规则目录/resources/rules,rules目录中创建规则文件helloworld.drl3、创建Spring配置文件/resources/spring.xml......
  • ubuntu下实现一个端口到另一个IP和端口的映射
    要在Ubuntu上实现一个端口到另一个IP地址和端口的映射,通常有几种方法。这里,我们将讨论两种常用的方法:使用iptables和使用SSH端口转发。方法1:使用iptablesiptables是Linux上用于配置防火墙的工具。它允许你根据指定的规则对进出网络数据包进行控制。首先,确保你已经......
  • mysql 常用存储引擎简介
    InnoDB引擎:具备外键支持功能的食物存储引擎InnoDB视为处理巨大数据量的最大性能设计的存储引擎。mysql从3.23.34a开始包含InnoDB引擎,大于等于5.5之后默认采用InnoDB引擎。InnoDB是mysql的默认事务引擎,它被设计用来处理大量短期(short-lived)事务,可以确保事务的完......
  • 跨时钟域处理
    一、慢到快  理论上讲,快时钟域的信号总会采集到慢时钟域传输来的信号,如果存在异步可能会导致采样数据出错,所以需要进行同步处理,一般采用延迟打拍法,或延迟采样法。1、延迟打拍法  最常用的同步方法是双级触发器缓存法,俗称延迟打拍法。异步信号从一个时钟域进入另一个时钟域......
  • Docker 三要素:镜像 容器 仓库
    镜像、容器、仓库为docker的三要素。首先,我们来了解一下docker容器实例吧。   所谓的镜像就是Book,在java里面叫做(类模板),所谓的newBook();基于同一份镜像模板,基于同一项java对象弄出来的,不同的实例对象,模板均来自同一份,等号左边叫类模板,等号右边叫整体叫做实例对象。 ......
  • Oracle详细错误信息可以精确到哪一行(dbms_utility.format_error_backtrace)
    以下案例:第7行会报no_data_found错误  declarex_out_mesgvarchar2(2000);v_api_namevarchar2(200);--程序名称v_head_idnumber;beginselectpha.po_header_idintov_head_idfrompo_headers_allphawherepha.po_header_id=788123456......