发布网友 发布时间:2022-04-23 10:20
共3个回答
热心网友 时间:2022-05-10 02:38
一个 React 组件可以简单地被认为是返回元素的函数(或者至少有一个具有这样的功能的类)。 这种功能性方法对于 Javascript 开发人员是非常自然的。 传入数据,得到元素。 如果你有一堆内容在数组当中,你可以简单地将它们遍历出一系列元素。 如果你想排除这些项目中的某一些元素,你可以使用 Array 数组对象中的 filter 方法和 map 方法去处理元素并且得到结果。这个功能性工作流程完美地反映了您对应用程序的其他部分的理解。 这种方法是对Javascript的优势的补充。一个 Vue 组件更像是一个能够从数据结构当中引用数据的模板。它包含了一个 DSL(Domain specific language),虽然是次要的,但是显然是完全没有必要的。我**不需要** v-for 因为我可以使用 map()。我**不需要** v-if 因为我可以使用普通的老旧的 if。模板至少会带来一定程度的有限或无益的认知压力。模板还引入了作用域的问题。 如果我将一些静态数据导入到我的 React 组件中,我可以在我的渲染函数中使用它,因为**所有标准的 JavaScript 作用域规则都应用于此**。 它只是一个 函数,与其他任何 函数 完全一样。 Vue 的模板与 Javascript 的单独作用域相互作用,因此您必须将该静态数据写到 Vue 组件中,并将其作为计算属性字段返回。 这些东西都不是特别痛苦,但都是不必要的。
热心网友 时间:2022-05-10 03:56
React在前端圈大火之后,轮子层出不穷。而其中的一些轮子,由于专注于解决很多人诟病的React过大、过慢的问题(然而不并不觉得),也相当出名。关注最多的莫过于Preact、Inferno等以「轻量化」为特色的库了,Github Star数也超过10000。另外由于React广泛应用于同构应用上,并且rendertoString,renderToStaticMarkup也存在同步执行、速度慢等问题,一些专注于React服务器端渲染的库也颇受关注。如Preact产出的preact-render-to-string还有我现在的团队在用的fast-react-render,都是这个思路。然而我一直都不喜欢这些替代库,特别是在同构的场景下。React通过 renderToString生成的DOM Content除了在每个节点上都有 data-reactid属性外,在根节点上还生成了一个 checksum的属性。浏览器端的React会在第一次render时校验节点内容与服务器生成内容的一致性,如果不一致则需要做很多DOM的增删改操作。理论上一致的checksum会节省大量Java执行、Reflow时间(可查看Benchmark)。而preact-render-to-string、fast-react-render都没有加入checksum的逻辑。其生成的代码,不管前端使用Preact还是React,都需要将整个DOM树重渲染一次。由于浏览器端的render也是同步的,意味这段重渲染的时间里是无法与页面交互的。
热心网友 时间:2022-05-10 05:31
等等 react不是Nike的一个技术吗(手动滑稽)