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 🙏

© 2025 – Pkg Stats / Ryan Hefner

qxc

v1.0.0

Published

一款基于jquery的前端页面组织工具

Readme

##一款用于页面组织的工具

##创建page实例


import $ from 'jquery';
import store from './store';
import QXC from 'qxc';
import module1 from './module1/index';
import module2 from './module2/index';

/** 定义一个页面 */
QXC.definePage({
  /** 定义页面的命名空间,页面会挂载到此命名空间,命名空间必须是唯一的, 可以为空, 如果不为空会挂载到 window的命名空间下 */
  namespace: 'PC.HOME',
  /** 页面全局相关的store */
  store,
  /** 构造函数,页面初始化时优先执行 */
  construct: (me) => {
    me.bindEvent();
  },
  /** 页面级别的动作 */
  actions: {
    init: (me, name, phone) => {
      console.log(name, phone);
    },
    /** 事件绑定 */
    bindEvent: (me) => {
      $('#aaa').bind('click', () => {
        me.init('wenjing.liang', '1234567');
      });
    }
  },
  /** 把一个页面划分成多个模块,每个模块独立管理 */
  modules: [
    {
      /** 模块对应的dom节点 */
      controller: $('#c-a'),
      module: module1
    },
    {
      controller: $('#c-b'),
      module: module2
    }
  ]
});

创建module


import QXC from '../qxc';
import store from './store';

/** 定义一个模块 */
const mod = QXC.defineModule({
  /** 模块自身的store, 可以不设 */
  store,
  /** 构造函数,模块初始化时优先执行 */
  construct: (me) => {
    console.log(me);
    me.bindEvent();
  },
  /** 模块渲染 */
  render: (me, ctrl, name) => {
    console.log(me, ctrl, name);
  },
  /** 模块级别的动作 */
  actions: {
    bindEvent: (me) => {
      console.log(me);
    }
  }
});

function init(ctrl, globalStore) {
  console.log(ctrl, globalStore);
  mod.render(ctrl, '123');
}

export default init;

注意

模块抛出时, 如果是函数会直接执行; 如果是对象,会执行对象的init方法