Qwik常见问题

常见问题

@QwikDev是Ai吗?

是的,而且他十分有趣。follow me

为什么叫Qwik

最初它被称为qoot,但是我们认为这个名字不利于搜索。而后一个社区成员@PatrickJS__提出了Qwik这个名字,经过builder.io投票后,就这样定了。

Qwik跟其他框架有什么不同?

Qwik是第一个在编写组件方面与React,Vue或者Svelte类似的开发体验的框架,同时提供及时交互的Live HTMLQwik通过消除水合来实现这一特性。与他们相反的是,Qwik会在用户交互的时候立即执行事件处理,而不需要去引导应用程序。这被称之为可恢复性。

由以上操作,使得Qwik获得了极高的性能。开发人员无需关心组件复杂度,因为就JS负载而言,Qwik的复杂度永远是O(1)

为什么不选择以前的框架?

简单回答:Qwik是唯一一个开源O(1)复杂度的框架

什么是Qwik City

简而言之,就是core。类比与Next.jsReactNuxt.jsVueSvelteKitSvelte

难吗?

如果熟悉React或者其他JSX开发,一点都不困难。路由几乎与Next.js一致,组件开发与React一致。

当然还是需要学习一些新的概念,比如QwikLive HTMLQwik可恢复性Qwik的细粒度反应性等等。我认为学习曲线相对平滑。

特别是相对于Rust。笑~

$ 表示什么意思?

$Qwik中充当延迟加载的标记。使用他之后会讲这部分分成细粒度Bundle

例如:

tsx 复制代码
import { component$ } from '@builder.io/qwik';
 
export default component$(() => {
  console.log('render');
  return <button onClick$={() => console.log('hello')}>Hello Qwik</button>;
});

由于$语法糖,上面的组件会被打包成以下几个文件

  • app.js
js 复制代码
import { componentQrl, qrl } from '@builder.io/qwik';
 
const App = /*#__PURE__*/ componentQrl(
  qrl(() => import('./app_component_akbu84a8zes.js'), 'App_component_AkbU84a8zes')
);
 
export { App };
  • app_component_akbu84a8zes.js
js 复制代码
import { jsx as _jsx } from '@builder.io/qwik/jsx-runtime';
import { qrl } from '@builder.io/qwik';
export const App_component_AkbU84a8zes = () => {
  console.log('render');
  return /*#__PURE__*/ _jsx('p', {
    onClick$: qrl(
      () => import('./app_component_p_onclick_01pegc10cpw'),
      'App_component_p_onClick_01pEgC10cpw'
    ),
    children: 'Hello Qwik',
  });
};
  • app_component_p_onclick_01pegc10cpw.js
js 复制代码
export const App_component_p_onClick_01pEgC10cpw = () => console.log('hello');

注意:$ 与其他框架(JQuery、Svelte)无关!

如果将细粒度操作分成多个js,用户交互请求不是会很慢吗?

不会。

首先,这个js文件只会在用户交互时才会被下载,并且可用在Service Worker中预先获取当前页面的js模块。其次,js文件是会被浏览器缓存的,所以不会每次都去下载。

这种策略被称之为推测模块获取。需要水合的框架必须在页面加载加载之时就将所有的js文件都加载完毕,无法利用这种策略。

Qwik怎么知道需要预先获取哪些模块?以及按什么顺序获取?

在生产环境中,Qwik在SSR期间生成大量信息用户尽快开始填充页面。只在页面上提供可用的交互位置。这样,当用户开始交互的时候,js就已经在缓存中了。

此外,Qwik insights将会根据优先级来确认先构造哪一部分。

例如,立即购买按钮比添加到购物车按钮更重要。因此,Qwik会优先构建立即购买按钮。

在弱网环境下,Qwik会不会影响用户体验?

emmm,恰恰相反。

Qwik不需要预先获取所有的内容,即可开始运行。其他框架却需要所有的内容都加载完毕才能开始运行。

事实上,Qwik能够减少网络瀑布流,因此在请求时,该模块可能已经被缓存。即使尚未被缓存,Qwik也可以避免重复请求同一模块。

因此,Qwik在弱网环境下的响应更快。

这是来自于高贵的鱼塘主:慕容云海的产物~

相关推荐
飞的肖2 分钟前
前端使用 Element Plus架构vue3.0实现图片拖拉拽,后等比压缩,上传到Spring Boot后端
前端·spring boot·架构
青灯文案19 分钟前
前端 HTTP 请求由 Nginx 反向代理和 API 网关到后端服务的流程
前端·nginx·http
m0_7482548814 分钟前
DataX3.0+DataX-Web部署分布式可视化ETL系统
前端·分布式·etl
ZJ_.26 分钟前
WPSJS:让 WPS 办公与 JavaScript 完美联动
开发语言·前端·javascript·vscode·ecmascript·wps
GIS开发特训营30 分钟前
Vue零基础教程|从前端框架到GIS开发系列课程(七)响应式系统介绍
前端·vue.js·前端框架·gis开发·webgis·三维gis
Cachel wood1 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
学代码的小前端1 小时前
0基础学前端-----CSS DAY9
前端·css
joan_851 小时前
layui表格templet图片渲染--模板字符串和字符串拼接
前端·javascript·layui
还是大剑师兰特1 小时前
什么是尾调用,使用尾调用有什么好处?
javascript·大剑师·尾调用
m0_748236112 小时前
Calcite Web 项目常见问题解决方案
开发语言·前端·rust