花一个小时,用 36 行写了一个最简单的 js 双向绑定 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
xingo

花一个小时,用 36 行写了一个最简单的 js 双向绑定

  •  
  •   xingo Mar 9, 2017 3798 views
    This topic created in 3337 days ago, the information mentioned may be changed or developed.

    t/344613

    前几天看到这一贴说有没有只做双向绑定的框架,今天读完日语没啥事情,就用一个小时实现了一下这个简单的函数

    preview

    好评在 npm 上下载哦

    截图上没有表现出来的是 object.value 手动修改 也会使所有的 dom 刷新 value

    用的原理和 Vue 是一样的 稍稍参考了一下 Vue 的实现

    当然 github 在这里 https://github.com/xingoxu/twoWayBinding ,欢迎大力点星(逃)

    11 replies    2017-03-10 13:14:55 +08:00
    qihboy
        1
    qihboy  
       Mar 9, 2017
    39 export default twoWay;

    明明是 39 行 /smile
    xingo
        2
    xingo  
    OP
       Mar 9, 2017
    @qihboy 空行去掉好伐啦(
    chemzqm
        3
    chemzqm  
       Mar 9, 2017
    曾经写过一个 https://github.com/chemzqm/reactive-lite
    还搞的各种文档和测试
    只是用了 react 后,再没管过它了
    fyibmsd
        4
    fyibmsd  
       Mar 9, 2017
    有什么用
    xingo
        5
    xingo  
    OP
       Mar 9, 2017
    @chemzqm 哇, 我这个只是写着玩一下的,试试自己能不能够实现双向绑定
    anuan
        6
    anuan  
       Mar 9, 2017
    老夫只用 jquery
    chemzqm
        7
    chemzqm  
       Mar 9, 2017
    @xingo #5 双向绑定写起来方便,但是灵活性和可控性太差了,还是基于 VirtualDom 的单向数据流更靠得住些
    xream
        8
    xream  
       Mar 10, 2017
    @anuan #6 想到那张神图
    markx
        9
    markx  
       Mar 10, 2017
    其实写得挺好的, 但是我还是忍不住想说一句,代码不换行读起来不舒服啊! minify 成一行岂不更好?
    xingo
        10
    xingo  
    OP
       Mar 10, 2017 via Android
    @markx 我一般是这么想的,如果匿名函数只有一句话,我是不愿意换行的, if 什么的也是一样 不过我刚发现我自己 forEach 那边应该不换行,怎么就换行了呢。。。拿 jsfiddle 写的 233
    KIDJourney
        11
    KIDJourney  
       Mar 10, 2017 via Android
    @fyibmsd 没什么用,除了业务什么都不要写最好。
    About     Help     Advertise     Blog     API     FAQ     Solana     3805 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 46ms UTC 10:29 PVG 18:29 LAX 03:29 JFK 06:29
    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