向大家推荐一个轻量完备的描述式开源前端框架dagger.js
与 React/Vue 等主流框架相比,dagger.js 提供了更加简单易用的代码组织方式:指令是业务代码的唯一调用入口(指令中可以使用作用域和模块回调参数)。 使用 dagger.js ,您将不再需要:
dagger.js 工作在浏览器运行时环境当中,无需编译构建过程。通过 script 标签引入框架脚本即可轻松完成应用程序创建。dagger.js 实现了一个运行时模块管理器,按需动态加载解析模块。为您的应用做极限瘦身。demo
dagger.js 内置了基于 hash 的路由管理逻辑。您无需为开发单页应用引入额外的路由管理类库。demo
dagger.js 倡导数据即状态的技术理念。有别于 React/Vue 单向数据流模型 state(data)/prop 的区分定义,在 dagger.js 中,数据作用域独立于页面组件定义,并具有全域视图响应性。指令作为数据的消费者,可以自由读写其声明位置上可见的作用域字段,您无需再为组件间数据状态同步而劳心费神。demo
dagger.js 是去组件化的( componentless ),并非基于传统的 MVVM 设计模式实现。对于使用者来说,数据( Model )通过指令声明方式直接与上下文视图( View )建立动态关联。在大多数场景下您无需调用任何 api 即可完成业务开发工作。demo
更多介绍请参见官方文档。
Talk is cheap, let's see the code😄:
empty entry
Hello dagger
scope demo animation
communication between isolate $scope
lifeCycle directives
html directive
add tags
to do list
Tic Tac Toe
module
router
router view toggle
each
欢迎大家体验试用 dagger.js ,提出宝贵意见和建议。您的支持和帮助是对我莫大的鼓励!!
1
wzw 2022-06-26 14:26:11 +08:00 via iPhone 1
是不是适合后端做点小活
|
2
dagger8224 OP @wzw 您好,dagger.js 对初接触者非常友好,有模板语法和 js 基础的话短时间内就能上手开发了。欢迎加入 QQ 讨论群:753706931 ,附言 dagger 即可:)。
|
3
liushuigs 2022-06-26 17:28:47 +08:00
看到了区别,没看到优势呀。适用于什么应用场景呢?
|
4
dagger8224 OP @liushuigs 开发者心智负担更小,上手容易,项目没有打包构建过程,线上代码量低,轻量级项目可以快速开发完成
|
5
liushuigs 2022-06-26 18:16:43 +08:00
无需编译,在一起轻量级的场景下,确实是有用处的。可以考虑再丰富一下示例。我看你是在用 Codepen ,也欢迎试用一下我的产品:RunJS ( https://runjs.qingting.work ),和你这个无需编译、开箱即用的理念非常相似。
|
6
dagger8224 OP @liushuigs 赞,刚刚在 RunJS 上试用了一下,使用起来很便捷: https://runjs.qingting.work/#/projects/c01586e50b604891
有个问题,codepen 可以通过 url 单独访问 js/css 文件,所以比较适合演示 dagger 的模块配置声明,请问在 RunJS 中也有类似的用法吗? |
7
liushuigs 2022-06-26 18:41:10 +08:00
@dagger8224 还没有呢,正在开发静态资源托管服务,不知道是不是你说的功能。
|
8
dagger8224 OP @liushuigs 我说的不是静态资源托管。比如说我创建了一个 id=xxx 的 demo ,那么可以单独通过 codepen/xxx.js 访问这个 demo 的 js 部分内容,也可以通过相同方式单独访问 html 和 css 。看 RunJS 的 url 是基于 hash 的,试了下貌似没有类似的功能哈
|
9
liushuigs 2022-06-26 18:48:03 +08:00
哦,明白了。我考虑下。谢谢
|
10
ClarkAbe 2022-06-26 21:59:41 +08:00 via Android
感觉方法好多好乱啊......不如 alpine.js 那样简单明了
|
11
dagger8224 OP @ClarkAbe 您好,感谢您的评论。dagger.js 中并没有设计需要常规调用的 api 方法,您说的是指令吗? demo 中的指令表达式写成了内联的,如果将表达式方法都放在 module 下定义 html 会看起来精简很多,可以参考: https://codepen.io/dagger8224/pen/ZErjzwm
至于指令数量,看了下 alpine 当前版本的文档,提供了 15 个指令 attributes ,6 个 properties 和 2 个方法,这与 dagger.js 在预定义指令的数目上是相当的。根据我的实际开发经验来看,dagger.js 常用的控制指令只有 10 个左右(基本都可以在 vue/alpine 中找到对应的指令),文档中介绍的部分指令,比如$file ,$result 等等,是针对特殊场景(本地文件读取)设计的,普通业务场景下使用频度较低。欢迎您继续体验 dagger.js ,提出更多意见和建议。感谢! |
12
hoshea 2022-07-10 23:00:25 +08:00
vue 和 react 创造的语法太多了,都是方言。。。前端越来越卷了
|
13
Lenic 2022-07-14 15:16:47 +08:00
看语法和 angular 很像啊
|
14
dagger8224 OP @Lenic 指令定义和 angular/vue 确实有很多类似的地方。不同之处在于,dagger 是一个基于 html 的纯描述式框架,也就是说只有指令声明而无需进行 api 调用,从开发者的角度来说心智负担会低很多。可以在 https://codepen.io/dagger8224/pens 中查看更多示例。
|