首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Preact 开发基于Shadow DOMJS插件

MVVM框架当然也可以用来开发界面级JS插件,甚至会使事情变得更加简单。 JS插件一般都是轻量。相比于使用ReactPreact更符合我们要。...PreactReact轻量级替代方案,体积仅有3kB,并且拥有与React相同API(官网如是说)。关于它更多优点以及与React差异性,都可以官网了解到,在此不再赘述。...完成这一步后,再来解决样式问题。 Shadow DOM可以直接添加style标签节点,并且只会Shadow DOM中生效,外部样式也不会在内部生效,完美做到样式隔离。...对于简单样式,或许使用模版字符串就足矣,而当样式变得繁多时,借助构建工具将减少许多工作量。...常见问题 组件选择 Preact可以直接使用React生态绝大多数组件,然而其中有许多使用是Styled-Components,对于这类组件是无法直接在Shadow DOM中使用,因为Styled-Components

1.9K30

JavaScript 新一代构建工具对比

也就是说,React 需要手动导入,然后将JSX转换为 React.createElement。然而,有一些方法可以 JSX 添加自动导入,或为 Preact 配置JSX。...默认情况下,JSX 工作方式和 esbuild 一--它转换为 React.createElement。它不会自动导入 React,但它行为可以被配置。...这是因为wmr依赖于与本地 JavaScript 模块兼容包。React默认不使用本地模块,而是使用一种称为 UMD 较老模块样式。...事实上,我为Vue单文件组件写了一个小插件来展示如何做到这一点。 没有插件情况下,我们不能在 wmr 把图片作为数据URL导入到 JavaScript 。...相反,我们需要使用一个语法正确 JavaScript 方法来导入它们。所以,如果我们公共文件夹中有一张狗图片,我们可能会把它包含在 Preact 组件,比如这样。

1.8K10
您找到你想要的搜索结果了吗?
是的
没有找到

Preact X 有什么新功能?

GitHub上有超过24,000个️star,并且有大量活跃社区成员不断提供支持,JS构建高效,小型,高性能,快速前端应用程序从未如此简单。...让我们看一下最近一些更改,并讨论它们如何帮助我们使用 PreactJS 开发更好应用程序。 Preact X 新功能和改进 Preact维护者进行了重大改进,以支持许多最新React功能。...它利用了Preact X API中提供useState和useCallback``Hook。如图所示,代码也与你React编写代码相同。 注意,Hooks是可选,可以与类组件一起使用。...现在,它与Preact包含在同一包。使用React生态系统库不需要什么额外安装。...Preact团队特别确保测试过程包括几个受欢迎包,以保证对其提供全面支持。 小结 本文中,我们探索了 Preact X 引入一些功能。

2.6K50

Taro 3.4 beta 发布: 支持 Preact 为应用开辟更多体积空间

支持使用 Preact Taro v3.4 正式实现了对 Preact 支持,下文将简单介绍适配思路及用法。 适配思路 1....运行时改造 Taro 小程序环境模拟实现了类浏览器环境,因此理论上任意前端框架都可以 Taro 中使用。...对于 Preact,它与 React 最大不同在于没有实现合成事件系统,而是直接使用浏览器事件方法,此外还使用了少量和 React 不一 DOM API。...得益于此,开发时我们可以使用任意 React 生态库,甚至对 React、ReactDOM API 引用也不需要修改,只需要简单地配置 alias 即可: // Webpack config const...,其中一个好处是可以把上述运行时适配层代码拆分到各个插件内。

83900

[技术地图]

Bobi.ink 2019-05-29 React 组件设计实践总结 03 - 样式管理一文吹了一波 styled-components 后,本文想深入来了解一下 styled-components...React 组件封装 现在看看如何构造出 React 组件。...,并生成类名 ComponentStyle: 负责生成最终样式表和唯一类名,并调用 StyleSheet 将生成表注入到文档 StyleSheet: 负责管理已生成样式表, 并注入到文档...这是最简单一种实现, 避免了样式复用复杂性,同时保持样式隔离性, 问题就是会产生样式冗余。...用于高阶组件场景 ✨react-is: 判断各种 React 组件类型 react-primitives 这是一个有意思库,这个库试图围绕着构建 React 应用提出一套理想原语,通俗说就是通过它可以导入不同平台组件

2.1K20

干货 | Islands Architecture(孤岛架构)携程新版首页实践

公共组件样式如何不对页面造成巨大影响 由于各个业务方样式风格不同并且还存在一些全局公共样式如何才能保证每个接入方为下图页面布局方式,其页面组成方式为阴影部分是事业部所维护组件,其他是公共组件...新旧版大首页页面布局变化如下图: 公共组件渲染性能问题 背景中提到不同形态公共组件(比如有些不需要左侧菜单或者头部样式不同),如何在客户端能第一时间展示给用户相应组件形态并且支持搜索引擎优化...当多个公共组件页面如何能快速进行加载及渲染。...这样即使页面使用了Preact也不会和我们有冲突,webpack externals 选项可以配置组件需要包名。 { //......externals: { preact: 'xxxxxx' } // ... } SSR(服务端渲染) SSR技术栈上选择了PreactPreact 它同样支持

1.7K20

新一代构建工具比较

通过这种方式,我们可以看到有哪些选择以及它们是如何叠加起来,这样我们就可以需要时候做出最好选择。 当然,所有这些都会被我使用 ReactPreact 经验所影响。...也就是说,React 需要手动导入,然后将 JSX 转换为 React.createElement。但是,有一些方法可以 JSX 添加自动导入,或者为 Preact 配置 JSX。...与其非捆绑理念一,Snowpack 捆绑不包含图片作为数据 url。...这是因为 wmr 依赖于与原生 JavaScript 模块兼容包。默认情况下,React 不使用本机模块,而是使用一种称为 UMD 模块较老模块样式。...实际上,我为 Vue Single file Components 编写了一个小插件来演示如何实现这一点。 wmr ,如果没有插件,我们就不能将图片作为数据 url 导入 JavaScript。

2.3K20

ReactPreact PWA 性能分析报告

基础React单页应用 它们第一次迭代重构Treebo是用React简单webpack来构建一个单页应用。 你可以看下之前写代码。...Treebo案例,转换成Preact让他们第三方包大小直接从140kb降到100kb。当然,全都是gzip之后。这让Treebo成功目标移动设备将初始交互时间从4.6s降低到3.9s。...', }, }, 这种方法缺点是,需要兼容其他配套方案,这样Preact才能在他们想使用React生态各部分同样工作 如果你正在使用ReactPreact对于95%案例来说都是最合适选择...webpack-bundle-analyzer分析结果,他们发现“react-router”包含“history”模块包含了“query-string”模块。 ?...其中一些: 懒加载图片 有些人可能从之前网络瀑布图中了解到,网站图像下载是跟JS下载来竞争带宽。 ? 由于浏览器解析img标签后立即触发图片下载,JS下载过程它们共享带宽。

2.2K20

Preact: 可作React备胎

先是package.json增加preactpreact-compat,其中preact-compat用来保证preactReact之间接口兼容。...npm install --save preact preact-compat webpack配置,确保resolve下alias下有下面这样配置,让我们代码中所有对reactreact-dom...resolve: { alias: { react: 'preact-compat', 'react-dom': 'preact-compat', } } 就这么简单。...Synthetic Event React,JSX接收到事件都是Synthetic Event,所谓Synthetic Events指就不是浏览器原生Event,而是包装了一下,我们依然可以通过...有备胎感觉真好:-) ---- 往期精选文章 ES6中一些超级好用内置方法 浅谈web自适应 使用Three.js制作酷炫无比无穷隧道特效 一个治愈JavaScript疲劳学习计划 全栈工程师技能大全

82410

web 环境运行 react-native 页面

背景 近两年来react-native构造原生应用异常火爆,app中用来替代H5页面可以明显提升用户体验,但是一些场景是需要配套web版本,比如分享、seo或者react-native报错时降级方案等...生成页面体验方面有些不太理想,比如js文件大小、首屏可见时间等,所以某些做了些优化。...preactreact规范一种简单高效实现体积非常小,包含特性:vnode、component、lifecycle、context、props&state、Refs,精简掉特性:PropType...由于preact去掉了合成事件,所有的事件都是绑定到dom上,对应react-native触摸手势事件需要用原生事件替代,组件上手势事件prop改为原生touch事件prop。...React+redux+reactDom打包压缩后大小为160kb Preact+preactcompat+redux打包压缩后大小为38kb 4 .react-web生成页面样式都是内联到

4.1K01

记一次preact迁移到react16.6.7经历

前言 preact作为备胎,但是具有体积小,diff算法优化过特点,简单活动页用上它是不错选择。...但是考虑到react令人兴奋新特性,preact并没有按时更新去完全支持它,更严重是一些babel插件、一些库配合preact会有问题。所以,还是不得不迁移了。 如何迁移?...webpackalias里面配置: alias: { react: 'preact-compat', 'react-dom': 'preact-compat' }, 复制代码...必须保证后面用到this.state之前,对state有初始化,否则是null 3. preact相关router迁移回react生态 首先,importpreact-router得换成react-router...切换回react,发现动画不生效,才发现因为内部渲染机制不一导致。所以我们把函数调用放在didupdate里面,并且加上执行过一次标记判断。 6.

1.1K40

干货 | Qreact,去哪儿网迷你react方案

此外,其中一个UI库是用于手机浏览器上,我们称之为React Web,用户每次打开我们页面,都会加载一遍React与相关组件,这个对体积就更加敏感。...2、支持事件系统,这不是简单add Event Listener,是React原来那套Synthetic Event。它帮我们搞定300ms延迟,还有滚动列表时误触发点击问题。...整个qreact架构大概就是: qreact= preact改+preact-compat改+react-web事件系统迷你版 preact源码里一个叫options.js文件,里面有一个options...原版Reactmin体积是140kb。减少近80kb。 体积算是达标了,那么性能如何呢?毕竟我们使用React初衷是因为它性能太好了。React性能主要来自它虚拟DOMdiff算法。...然后组件render方法,对于这部分React Element每次返回相同对象,并且在上面添加一个标记,碰到两个对象都有这个标记,就直接返回,不往下比较了。

98280

记一次preact迁移到react16.6.7经历

前言 preact作为备胎,但是具有体积小,diff算法优化过特点,简单活动页用上它是不错选择。...但是考虑到react令人兴奋新特性,preact并没有按时更新去完全支持它,更严重是一些babel插件、一些库配合preact会有问题。所以,还是不得不迁移了。 如何迁移?...webpackalias里面配置: alias: { react: 'preact-compat', 'react-dom': 'preact-compat' }, 所以,第一步先把这个去掉...必须保证后面用到this.state之前,对state有初始化,否则是null 3. preact相关router迁移回react生态 首先,importpreact-router得换成react-router...切换回react,发现动画不生效,才发现因为内部渲染机制不一导致。所以我们把函数调用放在didupdate里面,并且加上执行过一次标记判断。 6.

73120

被升级整疯了,Etsy 放弃 React

Preact 还是 React ? Etsy 目前拥有两大主要产品栈。面向买家页面,Etsy 使用是基于 PHP 服务器渲染方案,再配合客户端上 jQuery/ 原始 JS。...相关博客文章,Sangster 详细解释了 Etsy 迁移到 Preact 而不是最新版 React 三个原因。 首先,采用 Preact 能最大程度地降低迁移风险。...新版本很多生命周期方法已经被弃用和重新命名,所以 Etsy 得代码运行模块调整这些被弃用方法名称。...但迁移到 Preact 的话,虽然与 React,Etsy 也需要完成从 React.createClass 到 create-react-class 包,以及从 React.PropTypes... Preact 成为整个 Etsy 唯一标准后,这类问题也就随之消失了。

45241

React Hooks 实现必须依赖 Fiber 么?

现在,不止 react 实现了 hooks, preactreact ssr、midway 等框架也实现了这个特性,它们实现就是不依赖 fiber 。...我们分别来看一下这些不同框架 hooks 都是怎么实现react 如何实现 hooks react 是通过 jsx 描述界面的,它会被 babel 或 tsc 等编译工具编译成 render...preact 如何实现 hooks preact 是兼容 react 代码更轻量级框架,它支持 class 组件和 function 组件,也支持了 hooks 等 react 特性。...对比下 reactpreact 实现 hooks 差异: react 是把 hook 链表存放在 fiberNode.memorizedState 属性上,preact 是把 hook 链表存放在..._hooks 属性上 react hook 链表通过 next 串联,preact hook 链表就是个数组,通过下标访问 react 把 hook 链表创建和更新分离开,也就是 useXxx

67630

前端技术观察第七期 - 为什么 Progressive Web Apps 是移动端 web 未来

import可以像eval一将字符串转换为代码并执行 https://javascriptweekly.com/link/78133/web 注意:你lockfile可能被注入了恶意代码(英) 详细描述了...V8 两周以前支持了 ‘top level’ await,这篇文章从实用角度进行了介绍,里面有一些例子,包括 Modules 里面如何生效。...https://javascriptweekly.com/link/78147/web V8是如何优化正则表达式解析(英) V87.9版本,正则表达式解析将拥有更快速度和更少内存占用,文章描述了优化过程...plugin来实现定制化语法 https://nodeweekly.com/link/78330/web tools And codes roughViz.js: 浏览器创建手绘样式图表 一个有着手写样式有趣图标库...https://javascriptweekly.com/link/78418/web Preact X: 一个快速只有3KBReact备选 两年打磨最新版本Preact是一种流行轻量级兼容React

95920
领券