未分類 2021 年 2 月 6 日 Vue.js 的 JSX 中的 class attribute 为什么用 class,而不像 React 那样用 className Vue.js 的 JSX 中的 class attribute 为什么用 class,而不像 React 那样用 className 資深大佬 : Cbdy 6 React 给出的解释是 class 是 JavaScript 的保留字 大佬有話說 (18) 資深大佬 : kyuuseiryuu 因为 react 是 HTML in js,本质上还是 js 。 vue 是 HTML 标签的拓展。 資深大佬 : hackyuan 这个你都自问自答了,`class 是 Javascript 的保留字`。而 HTML 中只是标签上的一个属性而已。 資深大佬 : David1119 难道不应该反过来问吗?怎么反而成了 vue 不对了。。。。 資深大佬 : anguiao 反正都得经过 Babel 转译嘛,我觉得没差。 資深大佬 : hjdtl 一正确,此贴终结 資深大佬 : murmur 因为在 html 里就是 class 啊,react 才是为了偷懒啥封装都不做 資深大佬 : mebtte 别问, 问就是新的语法 新的体验 資深大佬 : shintendo 正确的问法:为什么 React 要用 className 而不是跟 HTML 一样用 class,明明 vue 的 JSX 证明了保留字不是问题 資深大佬 : molvqingtai 上正解,因为 React 团队偷懒 資深大佬 : yaphets666 vue 的思路是尽量保证和原始 HTML,JS,CSS 一致.template 里头的东西称作为模板,会经过 vue-loader 的处理.写什么都可以.class 和原生一样,并且意义是一致的,就是添加类名,当然选择 class 更符合直觉.这就是 vue 更加简单,容易学习的原因.尽量做的和原生一样. 資深大佬 : soulmt 这事又没有标准答案,都是开发者基于自己的逻辑来约定的而已, 不用太过于纠结。 資深大佬 : robinlovemaggie 说到这个就要刨根究底 React 和 Vue 本质上不同之处了:1.React 是个库(library), 而 Vue 是个框架(Framework)2.状态变更(Data Mutation)不同,React 是被动式(setState)给用户自主权,Vue 是主动 re-rendering,用户无法控制渲染时机。 資深大佬 : seki className 是早期时候 API 设计的决定,现在来看其实本来用 class 也是没有问题的。react 开发团队也有过更改设计的想法,虽然目前没有什么新消息。采用类 react API 的 preact 就是用的 class 这种事情没有必要拔得太高…… 資深大佬 : Biwood 先搞清楚一个概念,Vue 里面那个不是 JSX,是 template,用的是 HTML 语法。React 里面那个才叫 JSX,用的是 JavaScript 语法。html 语法里面用 class,JS 语法里面用 className,很正常。 資深大佬 : shintendo @Biwood 先搞清楚一个概念,Vue 支持 JSX 資深大佬 : Biwood @shintendo #15 Vue 里面所谓的 JSX 只能算是 template 的语法糖,这跟 React 里面一切皆用 JS 写的理念不一样。硬要刨根问底,我觉得本质上就是 template 语法跟 JavaScript 语法的区别,毕竟 Vue 的 template 模式继承自 Angular,而 React 不是。 資深大佬 : shintendo @Biwood template 是 render funtion 的语法糖,JSX 也是 render function 的语法糖,这一点和 React 的 JSX 并没有本质区别 資深大佬 : assclb @Biwood #17 讲的没错,vue 里面不管是 jsx 还是 template 都是 render function 的语法糖…