Javascript 数据绑定在单页应用程序(JS和HTML)中属于何处

Javascript 数据绑定在单页应用程序(JS和HTML)中属于何处,javascript,data-binding,Javascript,Data Binding,我正在尝试编写自己的数据绑定代码,主要是作为一种学习经验,因此我确切地知道发生了什么。应在何处指定数据绑定的相关详细信息?我看到了两种方法 A) 在HTML元素上指定自定义数据属性,以指示绑定目标、属性、要绑定的元素属性等。类似如下: 数据模型指定要绑定的JS对象,attr是元素属性和对象属性,events是事件应该触发绑定的内容。然后JS代码可以根据这些属性自动识别和添加侦听器 这是我最初基于以下示例编写代码: B) 我看到的另一种方法是从JS端进行数据绑定,并使用元素ID,使用JS代码

我正在尝试编写自己的数据绑定代码,主要是作为一种学习经验,因此我确切地知道发生了什么。应在何处指定数据绑定的相关详细信息?我看到了两种方法

A) 在HTML元素上指定自定义数据属性,以指示绑定目标、属性、要绑定的元素属性等。类似如下:


数据模型指定要绑定的JS对象,attr是元素属性和对象属性,events是事件应该触发绑定的内容。然后JS代码可以根据这些属性自动识别和添加侦听器

这是我最初基于以下示例编写代码:

B) 我看到的另一种方法是从JS端进行数据绑定,并使用元素ID,使用JS代码指定侦听器和属性。这意味着HTML只需要一个ID,其他所有内容都在JS中指定。如果我正确理解了代码,我认为这就是QA的类型:

这两个概念(我假设数据绑定一般)都需要知道要绑定的对象、UI元素和属性。在UI代码(A)或JS代码(B)中这样做更好吗

或者,A和B在不同情况下是否同样有效?这是针对单页应用程序的,我打算在服务器上直接存储尽可能多的状态信息,并使用JS处理动态交互


经过一些额外的思考后,一个应用程序的好处是,您可以更改绑定状态的可视化,同时只更新UI代码。选项B需要同时修改UI代码和JS代码来添加或更改元素。

我只在具有一些JS钩子的HTML/CSS库上见过实现A

但我会使用经过尝试和信任的路线,并选择:

B) 我看到的另一种方法是从JS端进行数据绑定,并使用元素ID,使用JS代码指定侦听器和属性。这意味着HTML只需要一个ID,其他所有内容都在JS中指定。如果我正确理解代码

$('#someid').val(valuehere,codehere,anything);

我只见过在具有一些JS钩子的HTML/CSS库上的实现

但我会使用经过尝试和信任的路线,并选择:

B) 我看到的另一种方法是从JS端进行数据绑定,并使用元素ID,使用JS代码指定侦听器和属性。这意味着HTML只需要一个ID,其他所有内容都在JS中指定。如果我正确理解代码

$('#someid').val(valuehere,codehere,anything);

我想这主要是一个观点问题,以及开发框架时使用的编码风格。由于这是一个一般的学习练习,我建议您尝试这两种方法,看看效果如何。谢谢。实际上我已经开始使用B方法了。我想我的问题可能会更新为:依赖于实现的A和B方法是否同样有效?我想这主要是一个观点问题,以及开发框架时使用的编码风格。由于这是一个一般的学习练习,我建议您尝试这两种方法,看看效果如何。谢谢。实际上我已经开始使用B方法了。我想我的问题可能会更新为:依赖于实现的A和B方法是否同样有效?我对各种库的接触有限,所以我不知道什么是共同点。这是一个有用的数据点。几年前,我摆弄过WPF/C,那里的数据绑定似乎遵循a方法,但我记不起很多细节。我对各种库的接触有限,所以我不知道什么是常见的地方。这是一个有用的数据点。几年前我摆弄了WPF/C,那里的数据绑定似乎遵循了a方法,但我记不起很多细节。