npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

aets

v0.1.1

Published

* 简介 > 想必你也不喜欢`ref()`,`.value`... > 如果我猜对了,你一定会喜欢`AE.JS`的 > 它兼具alins的优雅格式,vue的响应式,aguilar的组件化编程,react的JSX模板 > 语法和springboot的声明结构 > 原生支持路由 > 自带ajax库 * 快速上手 > 目前AE.JS只上传到了npm仓库 > 使用cli工具: > `npm install -g aec-cli`

Downloads

14

Readme

#AE.JS-极致优雅的前端框架

  • 简介

    想必你也不喜欢ref(),.value...
    如果我猜对了,你一定会喜欢AE.JS
    它兼具alins的优雅格式,vue的响应式,aguilar的组件化编程,react的JSX模板 语法和springboot的声明结构
    原生支持路由
    自带ajax库

  • 快速上手

    目前AE.JS只上传到了npm仓库
    使用cli工具:
    npm install -g aec-cli
    ae cli create
    由于技术问题,可能创建失败

  • 语法

    AE.JS使用JSX描述界面
    一个计数器的实例

    const name='组件名'
    var count=0
    function counts(){
        count++
    }
    <button onclick="count()">{{count}}</button>

    之后只需要通过如下方法注册到AE.JS中

    import {AE} from 'aets'
    import 组件名 from '你的组件.jsx'
    var app=new AE()
    app.addComponent(组件名,路径)
    app.start(端口)
  • jsx编译产物

    计数器实例的编译产物

    import Ae from 'aets'
    var count=Ae.core.ref(0)
    function counts(){
        count.value++
    }
    var $='<button onclick="count()">{{count}}</button>'
    export default {
        name: '组件名',
        data:{
            count: 0,
            counts: ()=>{
                count++
            }
        },
        $: $
    }

    挂载到页面上的代码

    <!DOCTYPE html>
    <html lang="en">
    <head><title></title></head>
    <body>
        <div id="app">
        </div>
    </body>
    </html>
    <script>
    var app=document.getElementById("app")
    document.title='组件名'
    app.insertAdjacentHTML('<button onclick="count">{{count}}</button>')
    var count={
       value:0,
       get _value(){
           return this.value
       }
       set __value(news){
           reload()
           this.value=news
       }
    }
    function reload(){
        app=document.getElementById("app")
        document.title='组件名'
        app.insertAdjacentHTML('<button onclick="count">{{count}}</button>')
    }
    </script>

###实现原理

  • 如何解析jsx

    通过webpack loader实现, 在用户import jsx文件时,loader会处理这些文件, loader首先会获取文件的代码,
    获取jsx中的html标签
    获取jsx中定义的函数
    获取jsx中定义的变量
    获取name值
    生成编译产物
    挂载至express

  • 如何搭建本地服务器

    AE.JS使用express实现组件的挂载
    在执行app.addComponent函数的时候,AE.JS将其添加至数组中,在挂载到express上

  • 如何实现响应式

    AE.JS在挂载时会将变量转化为一个具有getter和setter的对象,在调用setter时,将会执行 reload函数,重新渲染页面 ###教程