V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  X_Del  ›  全部回复第 1 页 / 共 17 页
回复总数  321
1  2  3  4  5  6  7  8  9  10 ... 17  
好奇场景,除非是数据结构特殊,感觉九成场合都能用 Ruby JS 一类现成的的动态语言,写几个函数直接搓一个 DSL 出来,效率还更高。
@Leviathann React 的确是爸爸。
Bonus:实在讨厌嵌套三元表达式的话,还有这种东西: https://github.com/romac/react-if
某种意义上,此争论的根源之一是:HTML / CSS / JS 并不适合写 UI 。

HTML + CSS 本来是服务于排版的。HTML 只用来表达信息,而 CSS 赋予信息以样式,JS 则提供简单的交互和动态更新内容的能力。
- HTML 是可以脱离 CSS 存在的:打开一个博客页面,文章内容都在 HTML 里,即使 CSS 完全没加载出来,用户也可以阅读文章内容;
- HTML + CSS 又是可以脱离 JS 存在的:现在还有很多人认为网页就该脱离 JS 也能正常工作,比如这里的讨论: https://news.ycombinator.com/item?id=33212448
早期的互联网上,网站以门户网站、博客、论坛等形式为主,这一套可以说非常成功。网站就是一篇文章,文章的内容、文章的样式、文章的交互,就该是解耦的,用三种语言很自然。

但前端开发者面对的问题今非昔比,如今我们要开发的,不再是门户网站、博客和论坛,而是各种富交互的“应用程序”。前端开发与桌面 / 移动端 UI 开发越来越像,这要求我们的工具也越来越像 UI 开发工具。这时的 HTML / CSS / JS ,就有点不太够用了。

UI 开发与网页开发有着根本的不同:数据 / 样式 / 交互的解耦不再有意义。在一个应用程序中,应用被分成一个个 UI component ,而一个 UI component ,就该是 self contained 的。习惯于三件套老前端们也许不会有这样的疑问,但为什么写一个 button 需要切换三种语言? button 的 label 写在 HTML 里,button 的颜色写在 CSS 里,button 绑定的事件则要写在 JS 里?

新的需求出现了,我们理应有新的工具。我们本可以开发一样新的技术替代 HTML / CSS / JS ,最终产物可能像是属于 Web 的 Swift UI 或者 Flutter 。但阴差阳错,最终的结果是 JS 一桶浆糊:我们有了 JSX 和 CSS-in-JS 。

回到开头,HTML / CSS / JS 并不适合写 UI ,但 Web 开发无法抛弃 HTML / CSS / JS ,最终我们不得不以某种形式在 JS 里写 HTML ,无论是 vue 还是 JSX 。

这种以 JS 强兼 HTML 的方式总是有某种代价( SEO 、性能等),我们又搞出了各种技术来擦屁股:比如 SSR 和各种 zero-runtime CSS-in-JS 。
很多人不喜欢 JSX ,因为不喜欢在 JS 里写 HTML 。
其实 JSX 只是在 JS 里写 vdom tree 而已,只是长得像 HTML 。
svetle 和 vue 的这部分则是一种模版语言。他们在这个方向上的竞争对手应该是 ejs ,handlerbars 和 jade 。
18 天前
回复了 wjx0912 创建的主题 Apple mac 强迫症求助,怎么支持 rm ./myfolder/ -fr
和 shell 没关系,这是 bsd 和 linux 的区别。没什么特别好的办法。
要不试试 https://github.com/MilesCranmer/rip2 之类的替代?
暴论:如果说 Rust 编程语言 o 神,那 MongoDB 就是数据库 o 神,NextJS 就是 React o 神。
https://noyaml.com/ 解释的很明白了,为什么不要用 YAML 。
YAML 看起来很简单,实际上非常复杂,很多东西都藏在水下:

- YAML 1.1 中 true 和 false 有 22 种表达方式( https://yaml.org/type/bool.html
- 多行字符串到底有多少种写法( https://stackoverflow.com/questions/3790454/how-do-i-break-a-string-in-yaml-over-multiple-lines/21699210#21699210
- 字符串不严格要求引号,这个例子来自 https://www.arp242.net/yaml-config.html

```
python: 3.5.3 # => 字符串 "3.5.3"
postgres: 9.3 # => 数字 9.3
```

- 由于 YAML 1.2 规范过于复杂,几乎没有一个 YAML parser 能完美地实现 YAML 1.2 ( https://matrix.yaml.info
2024-01-11 12:06:16 +08:00
回复了 Authorization 创建的主题 程序员 我用 chatgpt 写了一个密码网站
2023-10-01 22:59:31 +08:00
回复了 lisi1987 创建的主题 Apple iOS 有快捷设置手动 ip 与 dns 的方式吗?
啊? IP 地址和 DNS 本来就是针对每个 Wi-Fi 配置的:
你在 [设置 - 无线局域网 - 你家 Wi-Fi 右边的叹号] 的菜单里面改了 IP 和 DHCP ,下次连上你家 Wi-Fi ,会自动用这个配置。不用 Wi-Fi / 连上其他 Wi-Fi 就不会用这个配置😂
2023-09-12 22:11:45 +08:00
回复了 n18255447846 创建的主题 分享发现 Bun 1.0 发布,前端老哥们都来说说
@mdn 说到这个我就想起来,NodeJS 不兼容也挺多,我配了 Vitest 结果跑不起来。还好内置的 bun test 还算好用。
2023-09-12 11:57:10 +08:00
回复了 n18255447846 创建的主题 分享发现 Bun 1.0 发布,前端老哥们都来说说
菜。
文档 https://bun.sh/guides/install/workspaces 里写 workspace 之间的依赖写 "stuff-a": "*" 就行,实际上要写 "stuff-a": "workspace:*"。
但是 workspace 协议也不是完整支持,"stuff-a": "workspace:^" 这么写又不行了,这种文档和行为不一致的例子比比皆是。
不好好维护文档,搞 JS marco 这种花花肠子,取代 NodeJS ,路还远。
2022-04-04 17:51:43 +08:00
回复了 detached 创建的主题 Ubuntu ubuntu 下有什么好看的终端吗?
Linux 杂得可不只是桌面,Linux 的魅力就在于几乎每个组件都有不止一个答案:

- init 系统,systemd 还是 OpenRC ?又或者 runit ?
- 引导器,grub 还是 systemd-boot ?
- Glibc 还是 musl ?
- Gnu Coreutils 还是 BusyBox ?
- NetworkManager ? systemd-networkd ? ConnMan ?
- apt ? dnf ? pacman ? nix ?
- Linux 内核不满意? linux-zen 、linux-hardened 或者自己编译内核。甚至连 Linux 内核都可以丢掉,我就要用 BSD (不过那就不是 Linux 了)

这些还没碰到 GUI 呢,Linux GUI 一个窗口管理器就可以让你挑花眼。
Linux 就像积木一样,一千个人可以用出一千个 Linux ,并且说这就是最适合自己的 build 。
2022-04-04 17:33:08 +08:00
回复了 detached 创建的主题 Ubuntu ubuntu 下有什么好看的终端吗?
@nightwitch 换到 Windows 就只剩下一个答案 Windows Terminal 了
其他 Windows 的 Term 跟好看都不挨边😅

我用 Kitty 和 Alacritty
2022-03-27 01:08:56 +08:00
回复了 qiubangzhu 创建的主题 程序员 有多少人是用纯 Linux 做 NAS 系统的?
我用 Alpine 和 Arch 都做过,很爽,没啥坑。btrfs 很成熟了。
比较吃动手能力,比如 Alpine 的话经常得自己写 OpenRC 单元,systemd 同理。
适合爱折腾有控制欲的程序员 / DevOps ,运维们应该有更高级的工具吧。
2022-03-23 23:16:28 +08:00
回复了 superchijinpeng 创建的主题 macOS Tailscale 最新版系统无法登录
一个办法:手机端登录 Tailscale 可以选择用 QR 码登录,在另一台已经科学上网的设备扫码登录就可以了,这台用来扫码登录的设备不需要科学上网。
2022-01-25 21:12:04 +08:00
回复了 JohnSmith 创建的主题 分享发现 墙裂安利支持了插件市场的 raycast,可以抛弃 alfred 了
对程序员来说给 Raycast 写插件简直是享受,
Raycast 能做的 Alfred 基本都能做,就是那个图形化“低代码”的编辑器,看着就难受😣
2021-12-29 22:04:45 +08:00
回复了 thisismr2 创建的主题 分享发现 Brook 工作原理
@thisismr2 可以让 Clash 兼容 Brook 协议就好了,也可以利用上 Clash 丰富的规则 / 客户端生态(这个需求应该是 Clash 的),或者也可以反过来参考 Clash ,看看一个好的上网工具还需要什么功能。

Brook 除了协议本身之外,比较出彩的点是可以单文件解决透明代理的问题。阻止 Brook 被商业机场广泛使用的主要原因其实就是缺乏配置文件 + 配置文件订阅,不好给末端用户分发。
2021-11-23 22:55:00 +08:00
回复了 Kingfish404 创建的主题 Linux 2021 了, Homebrew on Linux 能用了么,体验如何
能用。
个人体会比较适合用在 Debian 这类发行版,官方源缺少某些软件或版本过于落后,用 Linuxbrew 可以安装到最新的版本(这个需求用 nix 也可以)。
但是在 Arch 上就完全不如 Pacman + AUR 的组合。

缺点是只支持 x86 架构,linuxbrew 没有 arm 的二进制包。
2021-11-13 01:15:17 +08:00
回复了 ClassicOldSong 创建的主题 分享创造 SingUI - 用纯原生 JS 写现代前端
挺有趣的,抱着气一下楼上和楼主的心态写了这个 Demo:

https://stackblitz.com/edit/singui-demo-1uarbb?file=index.js
1  2  3  4  5  6  7  8  9  10 ... 17  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3011 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 12:11 · PVG 20:11 · LAX 04:11 · JFK 07:11
Developed with CodeLauncher
♥ Do have faith in what you're doing.