{"id":13508962,"url":"https://github.com/ripplejs/ripple","last_synced_at":"2025-03-30T11:33:05.213Z","repository":{"id":13973540,"uuid":"16674241","full_name":"ripplejs/ripple","owner":"ripplejs","description":"A tiny foundation for building reactive views","archived":false,"fork":false,"pushed_at":"2014-07-30T00:15:52.000Z","size":2341,"stargazers_count":1274,"open_issues_count":12,"forks_count":66,"subscribers_count":38,"default_branch":"master","last_synced_at":"2025-03-18T05:08:30.857Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://ripplejs.github.io","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ripplejs.png","metadata":{"files":{"readme":"README.md","changelog":"History.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-02-09T20:01:41.000Z","updated_at":"2025-03-04T10:57:13.000Z","dependencies_parsed_at":"2022-07-31T17:08:58.649Z","dependency_job_id":null,"html_url":"https://github.com/ripplejs/ripple","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ripplejs%2Fripple","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ripplejs%2Fripple/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ripplejs%2Fripple/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ripplejs%2Fripple/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ripplejs","download_url":"https://codeload.github.com/ripplejs/ripple/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246314044,"owners_count":20757455,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T02:01:01.073Z","updated_at":"2025-03-30T11:33:04.825Z","avatar_url":"https://github.com/ripplejs.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","MVC Frameworks and Libraries","MVC Frameworks and Libraries [🔝](#readme)","📦 Legacy \u0026 Inactive Projects","MVC 框架和库"],"sub_categories":["Runner","运行器","运行器e2e测试"],"readme":"# ripple.js\n\n[![Build Status](https://travis-ci.org/ripplejs/ripple.svg?branch=master)](https://travis-ci.org/ripplejs/ripple)\n\nA tiny foundation for building reactive views with plugins. It aims to have a similar API to [Reactive](https://github.com/component/reactive), but allow composition of views, like [React](http://facebook.github.io/react/).\nThe major difference for other view libraries is that there are no globals used at all. Each view has its own set of bindings and plugins. This\nmakes composition of views really easy.\n\n```js\nvar Person = ripple('\u003cdiv\u003e{{name}}\u003c/div\u003e')\n  .attr('name', { required: true, type: 'string' });\n\nvar person = new Person({\n  name: 'Tom'\n});\n\nperson.appendTo(document.body);\nperson.name = \"Barry\"; // DOM updates automatically\n```\n\n## Install\n\n```js\ncomponent install ripplejs/ripple\n```\n\n## Browser Support\n\nSupports real browsers and IE9+.\n\n## Documentation\n\n[Documentation is on the wiki](https://github.com/ripplejs/ripple/wiki).\n\n## Examples\n\n* [Clock](http://jsfiddle.net/chrisbuttery/QnHPj/3/)\n* [Counter](http://jsfiddle.net/anthonyshort/ybq9Q/light/)\n* [Like Button](http://jsfiddle.net/anthonyshort/ZA2gQ/6/light/)\n* [Markdown Editor](http://jsfiddle.net/anthonyshort/QGK3r/light/)\n* [Iteration](http://jsfiddle.net/chrisbuttery/4j5ZD/1/light/)\n\nSee more examples at [ripplejs/examples](https://github.com/ripplejs/examples)\n\n## Plugins\n\n* [shortcuts](https://github.com/ripplejs/shortcuts) - add custom key binding combos\n* [events](https://github.com/ripplejs/events) - add event listeners to the DOM and call methods on the view\n* [each](https://github.com/ripplejs/each) - Basic iteration using the `each` directive.\n* [bind-methods](https://github.com/ripplejs/bind-methods) - Bind all methods on the prototype to the view\n* [markdown](https://github.com/ripplejs/markdown) - Adds a directive to render markdown using Marked.\n* [extend](https://github.com/ripplejs/extend) - Makes adding methods to the view prototype a little cleaner\n* [intervals](https://github.com/ripplejs/intervals) - Easily add and remove intervals\n* [computed](https://github.com/ripplejs/computed) - Add computed properties.\n* [refs](https://github.com/ripplejs/refs) - Easily reference elements within the template\n* [dispatch](https://github.com/ripplejs/dispatch) - Dispatch custom DOM events up the tree\n\n[View and add them on the wiki](https://github.com/ripplejs/ripple/wiki/Plugins)\n\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fripplejs%2Fripple","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fripplejs%2Fripple","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fripplejs%2Fripple/lists"}