V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wheelg
V2EX  ›  问与答

能不能用纯 canvas 实现一个组件框架

  •  
  •   wheelg · 2021-03-03 13:56:35 +08:00 · 1400 次点击
    这是一个创建于 1380 天前的主题,其中的信息可能已经有所发展或是发生改变。

    即整个页面只有一个 canvas 元素,然后用 canvas 实现组件绘制,似乎 flutter web 是这样的实现,但是需要 dart 编译成 js,那有没有类似的 js 框架呢?性能相比原生 HTML 元素会不会好一点

    7 条回复    2021-03-03 15:06:01 +08:00
    ruguo
        2
    ruguo  
       2021-03-03 14:50:26 +08:00
    那不是在浏览器里做浏览器?我想起了在 MC 里做电脑。。。
    sujin190
        3
    sujin190  
       2021-03-03 14:56:12 +08:00
    flutter web 的 canvas 渲染是编译成接近原生的 wasm 的,如果用 js 在 canvas 上绘制,想做出比现有浏览器渲染效率更高还是比较有难度的
    cck123
        4
    cck123  
       2021-03-03 14:58:38 +08:00
    figma 几乎是抛弃了 dom,自己用 webgl 实现的渲染引擎,差不多就是在浏览器里面做了个浏览器,还是很厉害的
    KiseXu
        5
    KiseXu  
       2021-03-03 15:00:08 +08:00
    梦幻西游 网页版就是用 canvas 整个画出来的。
    zuiluo
        6
    zuiluo  
       2021-03-03 15:03:55 +08:00
    当然可以,现在绝大部分 H5 游戏都是基于 canvas webgl 做的,游戏内也包含了各种复杂布局和元素,比绝大部分网页复杂多了。

    所以 H5 游戏引擎了解一下?

    当然如果你想从 0 开始写的话,开发成本估计要翻几十倍不止了
    shoaly
        7
    shoaly  
       2021-03-03 15:06:01 +08:00
    性能比 原生 html 好是不是 想多了, 所有浏览器最重要的事情就是 怎么把 dom 渲染的又快又好
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3088 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 10:48 · PVG 18:48 · LAX 02:48 · JFK 05:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.