Skip to content

pfzq303/dataBind-lua

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dataBind-lua

lua简单实现的数据绑定 实现参考了vue的原理

  1. 支持表达式自动引用
  2. 添加数组的原生修改 已知的bug: 在5.1版本的 “#” 运算符还无法支持
local data = {
   aa = {1,2,3,4,5},
   bb = 3,
   1,2,3
}
-- Vue.new(数据对象, 表达式, 监听函数,附加项)
-- 表达式支持正常的lua语法。支持直接访问data数据和computed数据
-- 其中附加项中computed 支持在表达式中使用self进行调用
local vm = Vue.new(data, " self:sum() + bb" , function(value, oldValue)
    print(value, oldValue)
end, {
    computed = {
        sum = function(self)
            local ret = 0;
            for _,v in ipairs(self.aa) do
                ret = ret + v;
            end
            return ret;
        end
    }
})
-- 下面是测试数据绑定
print("-------------")
table.insert(data.aa, 10)
print("-------------")
data.bb = 2
print("-------------")
table.remove(data.aa)
print("-------------")
data.aa = {2,2,2}
print("-------------")
data.aa[4] = 3

输出:

18	nil
-------------
28	18
-------------
27	28
-------------
17	27
-------------
8	17
-------------
11	8

notifyPoint 基于数据绑定实现的通知系统。这里会和cocos2dx的节点有点耦合,但无关紧要

About

lua简单实现的数据绑定

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages