返回顶部
首页 > 资讯 > 精选 >怎么用import.meta实现热更新
  • 586
分享到

怎么用import.meta实现热更新

2023-06-30 04:06:31 586人浏览 安东尼
摘要

这篇“怎么用import.meta实现热更新”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用import.meta实现热

这篇“怎么用import.meta实现热更新”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用import.meta实现热更新”文章吧。

import.meta

import.meta 是一个给 javascript 模块暴露特定上下文的元数据属性的对象,它包含了这个模块的信息。

import.meta 对象是由 ECMAScript 实现的,它带有一个 null 的原型对象。这个对象可以扩展,并且它的属性都是可写,可配置和可枚举的。

<script type="module">console.log(import.meta)  // {url: 'Http://127.0.0.1:5500/dist/index.html?a=1'}</script>

它返回一个带有 url 属性的对象,指明模块的基本 URL。也可以是外部脚本的 URL,还可以是内联脚本所属文档的 URL。注意,url 也可能包含参数或者哈希(比如后缀?#

怎么用import.meta实现热更新

应用场景

import.meta.hot

Pinia 是 Vuex 新替代方案。Pinia 中热更新实现,借助 import.meta

import { defineStore, acceptHMRUpdate } from 'pinia'const useAuth = defineStore('auth', {  // options...})// make sure to pass the right store definition, `useAuth` in this case.if (import.meta.hot) {  import.meta.hot.accept(acceptHMRUpdate(useAuth, import.meta.hot))}

Vite 通过特殊的 import.meta.hot 对象暴露手动 HMR api

interface ImportMeta {  readonly hot?: {    readonly data: any    accept(): void    accept(cb: (mod: any) => void): void    accept(dep: string, cb: (mod: any) => void): void    accept(deps: string[], cb: (mods: any[]) => void): void    prune(cb: () => void): void    dispose(cb: (data: any) => void): void    decline(): void    invalidate(): void    on(event: string, cb: (...args: any[]) => void): void  }}

import.meta.webpackHot

module.hot 的一个别名,strict ESM 中可以使用 import.meta.WEBpackHot 但是不能使用 module.hot

在 package.JSON 中设置 "type": "module" 会强制 package.json 下的所有文件使用 ECMAScript 模块

if (import.meta.webpackHot) {  // 使 action 和 mutation 成为可热重载模块  import.meta.webpackHot.accept(['./mutations', './modules'], () => {    // 获取更新后的模块    // 因为 babel 6 的模块编译格式问题,这里需要加上 `.default`    const newMutations = require('./mutations').default    const newModules = require('./modules').default    // 加载新模块    store.hotUpdate({      mutations: newMutations,      modules: {        ...newModules      }    })  })}

URL()

URL() 构造函数返回一个新创建的 URL 对象,表示由一组参数定义的 URL。

const url = new URL(url [, base])
  • url 是一个表示绝对或相对 URL 的 DOMString。如果url 是相对 URL,则会将 base 用作基准 URL。如果 url 是绝对URL,则无论参数base是否存在,都将被忽略。

  • base 可选。是一个表示基准 URL 的 DOMString,在 url 是相对 URL 时,它才会起效。如果未指定,则默认为 ''

二者结合使用

new URL('./relative-path', import.meta.url)

示例:获取图片

function loadImg (relativePath) {  const url = new URL(relativePath, import.meta.url)  const image = new Image()  image.src = url  return image}loadImg('../../images/1.jpg')

无需关心路径问题,自动根据当前 URL 进行转换。

以上就是关于“怎么用import.meta实现热更新”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: 怎么用import.meta实现热更新

本文链接: https://lsjlt.com/news/327307.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用import.meta实现热更新
    这篇“怎么用import.meta实现热更新”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用import.meta实现热...
    99+
    2023-06-30
  • 教你巧用 import.meta 实现热更新的问题
    目录import.meta应用场景URL()二者结合使用import.meta import.meta 是一个给 JavaScript 模块暴露特定上下文的元数据属性的对象,它包含了...
    99+
    2024-04-02
  • react 怎么实现热更新
    本教程操作环境:Windows10系统、react18版、Dell G3电脑。react 怎么实现热更新?[React] create-react-app 实现热更新一、使用以下命令行下载 react-hot-loaderyarn add ...
    99+
    2023-05-14
    React
  • nacos怎么实现热更新
    要实现 Nacos 的热更新,可以按照以下步骤操作:1. 在 Nacos 控制台上创建一个配置。2. 在应用程序中引入 Nacos ...
    99+
    2023-08-26
    nacos
  • docker热更新怎么实现
    Docker 热更新可以通过以下几种方式来实现: 使用 Docker Compose:可以使用 Docker Compose 来...
    99+
    2023-10-27
    docker
  • 使用CocosCreator怎么实现热更新
    今天就跟大家聊聊有关使用CocosCreator怎么实现热更新,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。什么是热更热更(新)本质上是从服务器下载需要的资源到本地,并且可以执行新的...
    99+
    2023-06-14
  • 怎么实现代码热更新
    本篇内容主要讲解“怎么实现代码热更新”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么实现代码热更新”吧!猴子补丁猴子补丁 ( monkey patch )大家...
    99+
    2024-04-02
  • nodejs实现热更新
    随着web应用的不断发展,JavaScript已经成为前端以及后端开发中的重要语言之一。而Node.js则是一种基于JavaScript的开源、跨平台的运行时环境。尽管Node.js的热度不如几年前,但它仍然是一个强大的工具,为前端/后端开...
    99+
    2023-05-17
  • uniapp实现热更新
    随着移动开发的发展,热更新已经成为了一个非常重要的功能,可以让应用程序在不需要再次发布的情况下,及时地修正bug并添加新特性。而对于uniapp来说,热更新是一种非常重要的解决方案,因为它可以同时支持多个平台,并且实现起来也比较简单。在本文...
    99+
    2023-05-22
  • java热更新jar包怎么实现
    要实现Java热更新jar包,可以使用以下几种方法: 使用类加载器:Java中的类加载器可以动态加载和卸载类,因此可以使用类加载...
    99+
    2023-10-25
    java jar
  • react如何实现热更新
    这篇文章主要讲解了“react如何实现热更新”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react如何实现热更新”吧!react实现热更新的方法:1、使用“yarn add react-h...
    99+
    2023-07-04
  • uniapp实现app热更新的方法
    啊~时隔多月终于闲下来了。最近整理了下资料发现热更新在app开发是经常见的,基本必备而且确实很方便,所以就总结了点东西给大家看看,有问题可以一起讨论 一、实现热更新需要那些东西 需要...
    99+
    2023-01-03
    uniapp app热更新 uniapp 热更新
  • Node.js巧妙实现Web应用代码热更新
    背景 相信使用 Node.js 开发过 Web 应用的同学一定苦恼过新修改的代码必须要重启 Node.js 进程后才能更新的问题。习惯使用 PHP 开发的同学更会非常的不适用,大呼果然还是我大PHP才是世界...
    99+
    2022-06-04
    巧妙 代码 Node
  • uniapp开发APP之强制更新和热更新的实现
    目录前言整包更新和热更新版本号约束实现原理其他方案参考资料总结前言 app和h5相比,有着更新延迟和更新难的特性,h5在部署更新后可以保证所有用户访问的都是最新的功能,而app则可能...
    99+
    2022-12-21
    uniapp 热更新 教程 uniapp 强制更新 uniapp怎么热更新
  • Python在游戏中的热更新实现
    目录介绍:原理:1.标准import2.reload函数实现:总结:介绍: 热更新,就是在服务器不重启的的情况下,对游戏增加新的功能或者修复出现bug 的代码。游戏更新迭代速度快,...
    99+
    2024-04-02
  • Python-使用watchdog热更新
    直接上代码: import importlib from watchdog.observers import Observer from watchdog.events import * class ScriptEventHa...
    99+
    2023-01-31
    Python watchdog
  • 详解Android中实现热更新的原理
    这篇文章就来介绍一下Android中实现热更新的原理。 一、ClassLoader 我们知道Java在运行时加载对应的类是通过ClassLoader来实现的,ClassLoad...
    99+
    2022-06-06
    更新 Android
  • React Native怎么采用Hermes热更新打包
    这篇文章主要介绍“React Native怎么采用Hermes热更新打包”,在日常操作中,相信很多人在React Native怎么采用Hermes热更新打包问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希...
    99+
    2023-06-30
  • Config中怎么实现配置热刷新
    Config中怎么实现配置热刷新,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。问题1. 如何实现配置热刷新重点 Nacos原理:1.在需要...
    99+
    2024-04-02
  • 什么是Android Multidex热更新
    一、Android Multidex热更新 Multidex热更新是指在不重启应用的情况下,通过后台向app推送一个fix、dex文件,等这个文件下载完成,app提示用户发现新的更新,需要重启app。待用户重启,代码修复即会生效。 Andr...
    99+
    2023-10-29
    Android Multidex
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作