• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xingo
V2EX  ›  程序员

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

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

    https://www.sunp.eu.org/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   ·   1004 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 18:57 · PVG 02:57 · LAX 11:57 · JFK 14:57
    ♥ Do have faith in what you're doing.