Web 前端 MV* 框架模板语法设计 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
vilicvane

Web 前端 MV* 框架模板语法设计

  •  
  •   vilicvane
    vilicvane Mar 23, 2015 3315 views
    This topic created in 4059 days ago, the information mentioned may be changed or developed.

    正在为自己的 MV* 框架 Drop 设计 0.2 版的模板语法. 0.1 版因为时间比较紧迫, 最初的设计和实现总共只用了十来天, 就用到了项目上, 发现了不少问题. 0.2 版希望能较好地解决, 于是慢慢在推敲相关设计, 并参照了 Angular 2 (不过 Drop 本身 decorator 的概念也和 Angular 的 directive 有相似之处).

    目前相关内容都是放到 issue 里的, 有兴趣的同学可以看看 0.2 版介绍草稿 (英) 来了解还在设计中的 Drop 0.2 版的语法. 最重要的是, 有兴趣的同学可以参与到初期设计中来.

    造这个轮子一方面是因为不大有耐心阅读别人的源码 (得治), 造成对诸如 Angular 之类的框架没有底, 不知道内部实现的瓶颈在哪儿, 用起来不安心 (说到这儿想起之前有看到过一文, 建议标注 API 开销大小, 还是挺有用的). 另一方面还是因为对现有的框架不是很满意. (比如为什么要双大括号?)

    Angular 来说, 在 Angular 2 的宣讲里其实已经提到了很多 Angular 1.x 的问题, Angular 2 也解决了多数提到的问题, 但有的问题可能还不是很对极个别人的胃口 (比如我).

    举个例子:

    Angular 1.x, ng-something="..."... 是语句还是表达式, 是由编写 directive 的人决定的, 这样容易给使用者带来困惑. 于是在 Angular 2 中, 使用了 [属性]="表达式"(事件)="语句" 这样的形式. 挺好, 但是感觉还不够一般化.

    于是在 Drop 0.2 版中, 我暂且想到这样一种形式, 使用一个符号来区分表达式和语句:

    [*click doSomething] <div>click me!</div> [*click :doSomething()] <div>click me!</div> <!-- 或者另一种风格 --> <div *click="[doSomething]">click me!</div> <div *click=":doSomething()">click me!</div> 

    欢迎在 0.2 版介绍草稿 (英) 等 issues 下参与讨论, 提供使用案例或者语法改进 (虽然估计评论区依旧会空空如也 T-T).

    6 replies    2015-03-23 14:12:50 +08:00
    WildCat
        1
    WildCat  
       Mar 23, 2015 via iPhone
    有 React 了……别造轮子了
    vilicvane
        2
    vilicvane  
    OP
       Mar 23, 2015
    @WildCat React 挺好的, 但是 Drop 不是 React 的轮子.
    cdffh
        3
    cdffh  
       Mar 23, 2015   1
    帮老万顶
    adjusted
        4
    adjusted  
       Mar 23, 2015 via Android
    没virtual Dom现在好意思叫框架,纯TX
    tabris17
        5
    tabris17  
       Mar 23, 2015
    自己用自己爽就可以了,反正我是不会去重复学习这些所谓的模板的
    vilicvane
        6
    vilicvane  
    OP
       Mar 23, 2015
    @adjusted Virtual DOM 只是内部实现方式, 不知道你是从哪里看出来没有用到类似技术的? 另外有没有 Virtual DOM 和是不是框架有半毛钱关系?
    About     Help     Advertise     Blog     API     FAQ     Solana     2441 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 48ms UTC 08:52 PVG 16:52 LAX 01:52 JFK 04:52
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86