pandyle

pandyle是一个基于jquery的MVVM库。它为jquery提供了基本的模板和组件功能。pandyle秉承jquery — write less, do more 的设计理念,主要关注点即在于简单,它的大小只有7kb(压缩后),易学易用,努力减少你书写的代码量,并且更贴合传统的jquery的书写方式。

特点

  • 简单:非常简单易上手,无需学习webpack、es6等前端知识,基本看一遍文档即可进行开发

  • 兼容性良好:pandyle的兼容性取决于jquery版本,因此使用1.X版本的jquery即可兼容至ie8浏览器

  • 输入与视图模型分离:pandyle使用inputs类来独立的处理用户输入,根据表单元素的name属性自动生成数据模型,无需事先定义

  • 同步操作:pandyle的所有操作都是同步的,代码逻辑清晰的同时保证了同其他jQuery插件的良好兼容

  • 资源化的组件:pandyle将组件视为一种资源,这意味着你可以像加载图片一样任意加载你想要的任意组件,只需在p-com指令中写上组件的路径即可,无需事先编译或引入特定的组件代码。此外,在pandyle中,你可以很轻松的使用p-bind来动态的绑定组件,使页面能够完全根据数据来动态生成,如以下示例:

  1. <div class="main">
  2. <div p-for="components" p-as="item">
  3. <div p-bind="p-com:{{@item.type}}" p-context="@item.data">
  4. </div>
  5. </div>
  6. <script>
  7. Pandyle.config({
  8. comPath: {
  9. Default: './otherComponents/{name}.html',
  10. Menu: './otherComponents/menu/{name}.html',
  11. MyCom: './components/{name}.html'
  12. }
  13. })
  14. var book1 = {
  15. title: 'book1',
  16. author: 'rrr',
  17. price: 20,
  18. num: 10,
  19. tags: ['tag1', 'tag2', 'tag3']
  20. };
  21. var list = [
  22. {
  23. value: 1,
  24. name: '选项1'
  25. },
  26. {
  27. value: 2,
  28. name: '选项2'
  29. }
  30. ]
  31. var vm = $('.main').vm({
  32. components: [
  33. {
  34. type: 'test'
  35. },
  36. {
  37. type: 'MyCom.book',
  38. data: book1
  39. },
  40. {
  41. type: 'list',
  42. data: {
  43. title: '列表1',
  44. name: 'checkList',
  45. list: list
  46. }
  47. }
  48. ]
  49. })
  50. </script>

适用场景

  • 老项目重构:这可能是pandyle最能发挥作用的场景。很多老项目中使用了大量的jquery代码及jquery插件,使用其他框架进行重构的话可能会引起大量的修改,使用pandyle能以最小的代价对老项目完成mvvm的改造
  • 兼容性要求较高的项目:一些特定领域的项目可能仍然要求兼容ie8甚至ie8以下的浏览器,不适合使用三大框架,这种情况下可以尝试使用pandyle作为替代
  • 后端人员开发:pandyle对后端开发者是友好的,无需掌握现代前端的一系列工具和语法,后端开发者可以轻松上手
  • 小项目:对小项目来说,pandyle的开发效率可能更高,有兴趣的可以尝试一下

文档

在wiki中查看文档

交流

你可以加入QQ群进行技术交流:524640426