fly63前端网

www.fly63.com

首页文章资源工具教程 栏目
  • 关于我们
  • 网站投稿
  • 赞助一下
搜索

在线工具_工作生活好帮手

打造各种简单、易用、便捷的在线工具,网友无需注册和下载安装即可使用

点击查看

关闭

提交网站

Ractive.js
分享
复制链接
新浪微博
QQ 好友

扫一扫分享

网站地址:https://github.com/ractivejs/ractive
GitHub:https://ractive.js.org/
网站描述:一个 JavaScript Dom操作库

Ractive 是一个 JavaScript 库,用于以不强迫用户进入特定框架的思维方式的方式构建反应式用户界面。它采用了完全不同的 dom 操作方法-节省了用户和浏览器不必要的工作。它实现了数据绑定、DOM实时更新、模板、事件处理等多个有用的功能,它专注于UI层,学习成本低


功能:

  • 数据绑定,具有漂亮的声明性语法。
  • 使用户在进行事件处理不会费劲。
  • 灵活而高效的动画和过渡


一、hello world

首先创建一个index.html,引入ractive.js,并添加一个容器元素来渲染模板:

<body>
    <div id='container'></div>
    <script src='Ractive.js'></script>
</body> 

编写模板并实例化一个Ractive对象

    <div id='container'></div>

    <script id='template' type='text/ractive'>
        <h1></h1>
    </script>
    <script src='ractive.js'></script>
    <script>
    var ractive = new Ractive({
        el: 'container',
        template: '#template',
        data: { name:"Hello world"}
    });
    </script>

二、数据的更新

ractivejs数据的更新类似set、get存取器,通过set来更新数据,通过get来获取数据,例如上面Helloworld的例子中,我们打开控制台输入ractive.set('name',"alibaba"),你会看到页面上会立即更新,同时我们通过ractive.get('name')可以获取当前name的值

var list = [{name:"Jim"},{name:"LUCY"},{name:"LILY"}]
var listView = new Ractive({
    el: 'container',
    template: '#template',
    data: { list:list}
});
    //修改list第一个值为sone
  listView.set('list.0.name','sone');
  //获取修改后的值
  console.log( listView.get('list') );

这里通过set('list.0.name')来动态修改数组第一个元素的name值.list.0表示数组的第一个元素.


三.数据的双向绑定

理解并掌握数据的双向绑定可以很大程度上提高我们的开发效率,不用再写那些繁琐的DOM操作代码

  <div><h2>订阅报警状态:</h2>
  <label><input type='radio' name='' value='Error' checked> red</label>
  <label><input type='radio' name='' value='Warning'> green</label>
  <label><input type='radio' name='' value='Critical'> blue</label>
  <p>当前报警状态: </p>
</div>

上面代码为模板代码,通过简单模板我们就可以实现数据的双向绑定,将数据(javascript对象)映射到view层,界面的操作都会同步更新数据.这里我们可以通过listView.get('status')获取当前选中状态的值,同样可以通过set方法设置值. 在看一个复选框的例子

<li><input type='checkbox' name='' value=''> </li>

在控制台执行listview.get('selected'),你会发现返回的是一个数组,包含已选择的checkbox的值. 

通常双向绑定都会提供一个watch功能,在ractivejs中实现watch是observe方法,它监听绑定数据的变化,在上面的radiobox的demo上我们扩展一个功能,当选中error时,弹出一个提示框

  listView.observe('status',function(newvalue,oldvalue){
    if(newvalue==="Error"){
        alert('你选择了Error')
    }
})

observe的回调中返回newcalue与oldvalue,分别对应的是改变之后与改变之前的值.其它对绑定数据的操作例如push、splice都会触发observe


四.事件处理

使用ractivejs时,我们使用代理事件的方法,首先在模板声明代理事件,然后在js代码中订阅事件



    <li> <button on-click="del:">删除</button></li>

  <p><input type="text" value="" ><button on-click="add">添加</button></p>
  <p><button on-click="show">查看当前列表的值</button></p>
listViewevent.on({
    add:function(){
        var name = this.get('name');
        if(name.replace(/(^s*)|(s*$)/g, "").length===0){
            return
        }
        this.push('list',name);
    },
    del:function(event,index){
        this.splice('list',index,1)
    }
})

特别注意的是上面的del方法,我们传了一个index参数,这个参数表示当前数组元素的索引,这个index值是在模板中通过del:方式传进去的.同时我们可以看到,大部分逻辑都是在操作数据,ractivejs官方也提供了很多操作数据的方法.


链接: https://fly63.com/nav/3249

more>>
相关栏目
react
Facebook开发的一款高效、灵活、声明式设计的JS库
官网GitHub
AngularJS
Google推出有条理,可维护,易编程的MVVM框架
官网GitHub
backbone
提供:模型、集合、视图,开发重量级的javascript应用的框架
官网GitHub
jquery
一个快速、简洁的JavaScript代码库
官网GitHub
zepto.js
一个轻量级的针对现代高级浏览器的JavaScript库
官网GitHub
Ember
JavaScript MVC框架,它用来创建复杂的Web应用程序,消除了样板
官网GitHub
nw.js
轻量级桌面应用开发的捷径
官网GitHub
socket.io
一个WebSocket库,包括了客户端的js和服务器端的nodejs
官网GitHub
nuxt.js
基于 Vue.js 的轻量级、服务端渲染 (SSR) 应用框架
官网GitHub
Next.js
实现react的服务端渲染的框架
官网GitHub
Electron
基于Chromium 和 Node.js, 使用 JavaScript, HTML 和 CSS 构建跨平台的桌面应用
官网GitHub
htmx
无需JavaScript的动态HTML
官网GitHub
Nerv
一款由京东凹凸实验室打造的类React前端框架
官网GitHub
lodash
一致性、模块化、高性能的 JavaScript 实用工具库
官网GitHub
ocLazyLoad
AngularJS 的延迟加载(惰性加载)模块和组件
点击进入GitHub
weui.js
WeUI 的轻量级 js 封装
点击进入GitHub

手机预览