Vdt.js

前端虚拟DOM模板引擎
授权协议 MIT
开发语言 JavaScript
所属分类 Web应用开发、 浏览器/JS引擎
软件类型 开源软件
地区 国产
投 递 者 易祖鹤
操作系统 跨平台
开源组织 金山
适用人群 未知
 软件概览

vdt.js 是一个在浏览器中使用的前端模板引擎,基于virtual-dom库开发,采用虚拟dom的思想实现模板的渲染与更新。

相对于传统前端模板引擎而言,优势在于:模板更新便捷而高效。因为利用virtual dom技术,vdt模板渲染的结果并非传统的html字符串,而是dom,所以更新操作不会导致整个模板重绘。

目前该工具已在金山云项目中大量应用

更多信息,请参考:http://javey.github.io/vdt.html,期待大家关于文档和代码的pull request。

功能特性

  • 基于virtual-dom,DOM更新速度快

  • 能实现前后端模板继承,包含,宏定义等

  • 文件大小在gzip压缩后大概13KB(包含浏览器实时编译模块)

  • 支持前后端渲染

安装

通过script标签引入

Vdt会暴露全局变量Vdt,请到github下载对应的文件, 或者通过npm安装,然后script标签引入

npm install vdt --save
<script type="text/javascript" src="node_modules/vdt/dist/vdt.js"></script>

与webpack或browserify结合使用

使用npm方式安装依赖

npm install vdt --save
var Vdt = require('vdt');

与requireJs等模块加载器结合使用

Vdt打包的文件支持通过UMD方式加载

define(['path/to/vdt'], function(Vdt) { });

示例

<div>
    <h1>{title}</h1>
    <div ev-click={onClick.bind(self)}>Clicked: {count}</div>
    <ul v-for={items}>
        <li>{key}: {value}</li>
    </ul>
</div>
var vdt = Vdt(template);
vdt.render({
    title: 'vdt',
    items: {
        a: 1,
        b: 2
    },
    count: 0,

    onClick: function() {
        this.count++;
        vdt.update();
    }
});
  • 在线生成加密对网站: http://web.chacuo.net/netrsakeypair 前端代码:rsa.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://passport.cnblogs.com/scripts/jsencrypt.min.js"></script> <script

  • jj-vdt 校验中心 文档地址 可以简单使用默认也可以自定义通过进行校验,非常适用于验证中心 新增管道形式,适用于多重校验 提供异步校验能力 html中则直接引入common文件夹下的vdt.js,window.vdt进行调用 安装 import vdt from 'jj-vdt' 复制代码 <script src="jj-vdt/common/vdt.js"></script> 复制代码 使用

  • recast资料太少,在大佬的建议下转到babel了。 搬运各个地方的案例学习后,分享给大家,也给自己一个记录。 案例需2个文件:运行文件1_run.js       源码文件1_read.js 1_read.js var _0x2075 = ['wrw3EMKc', 'BBdBHWk=', 'wplgd8O5dHbDtFfDucK9CsOS', 'f8KvAcKewoDClg==', 'XcKo

  • 将上篇分解,记录多写法将a["length"]转变为a.length 案例需2个文件:运行文件2_run.js       源码文件2_read.js 2_read.js var _0x2075 = ['wrw3EMKc', 'BBdBHWk=', 'wplgd8O5dHbDtFfDucK9CsOS', 'f8KvAcKewoDClg==', 'XcKowo9uOyfChw==', 'XcKowp

  • 代码简介: JS实现的Infinite Menus。好像是老外的,代码有点乱,不过效果很不错。 代码内容: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.

 相关资料
  • 前言 vdom 是 vue 和 React 的核心,先讲哪个都绕不开它。 vdom 比较独立,使用也比较简单。 如果面试问到 vue 和 React 和实现,免不了问 vdom: vdom 是什么?为何会存在 vdom? vdom 的如何应用,核心 API 是什么 介绍一下 diff 算法 什么是 vdom 什么是 vdom DOM操作是昂贵的。 步骤一:用JS对象模拟DOM树 步骤二:比较两棵虚

  • 当部署模板验证失败时,我的代码中出现了一个错误:行105和列9处的模板资源myVMć无效:模板函数reourceId无效。使用详情请看https://aka.ms/arm-template-expressions。使用详情请见https://aka.ms/arm-template-expressions。(代码:InvalidTemboard)。 我已经尝试解决这个错误但我不会 } 结果是,这将使

  • 基础 虚拟 DOM 节点(vnode)是用于表示 DOM 元素(或 DOM 的一部分)的 JavaScript 对象。Mithril 的虚拟 DOM 引擎使用 vnode 树来生成 DOM 树。 vnode 通过 m() hyperscript 工具来创建: m("div", {id: "test"}, "hello") Hyperscript 也可以直接使用组件: // 定义一个组件 var E

  • 我知道在C++中没有什么比虚拟模板方法更好的了,但似乎它正是我所需要的。有什么办法可以让我使用吗?我很感谢任何建议。 我想通过add方法将实体添加到向量中,这些实体需要是虚拟的,也需要模板,如何避免这种情况?

  • 本文向大家介绍什么是虚拟DOM?相关面试题,主要包含被问及什么是虚拟DOM?时的应答技巧和注意事项,需要的朋友参考一下 虚拟 dom 是相对于浏览器所渲染出来的真实 dom 的,在react,vue等技术出现之前,我们要改变页面展示的内容只能通过遍历查询 dom 树的方式找到需要修改的 dom 然后修改样式行为或者结构,来达到更新 ui 的目的。 这种方式相当消耗计算资源,因为每次查询 dom 几

  • 本文向大家介绍react的虚拟DOM和vue的虚拟DOM有什么区别?相关面试题,主要包含被问及react的虚拟DOM和vue的虚拟DOM有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 React 是数据先生成 vdom,然后对比 vdom(实现上并非先后顺序,两棵树边遍历边生成新的树),最后通过新的 DOM 树渲染。 Vue 是数据先进性对比,先通过数据的不同,再去更新 vdom(这不知道

  • 本文向大家介绍vue 虚拟DOM的原理,包括了vue 虚拟DOM的原理的使用技巧和注意事项,需要的朋友参考一下 为什么需要虚拟DOM?   如果对前端工作进行抽象的话,主要就是维护状态和更新视图,而更新视图和维护状态都需要DOM操作。其实近年来,前端的框架主要发展方向就是解放DOM操作的复杂性。   运行js的速度是很快的,大量的操作DOM就会很慢,时常在更新数据后会重新渲染页面,这样造成在没有改

  • 我知道React创建一个虚拟DOM并比较差异,然后只是更新真实DOM的实际元素,但是如果手动更改它,如何更有效呢?通过还是使用jQuery函数?