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 🙏

© 2024 – Pkg Stats / Ryan Hefner

tj-virtual-components

v1.4.1

Published

<h3 align="center"> VirtualComponents </h3>

Downloads

3

Readme

🚀 特性

  • Vue3 Composition API
  • TypeScript
  • 同时支持 Vue 2、3
  • 虚拟列表

安装

Vue3

$ npm i tj-virtual-components

or

$ yarn add tj-virtual-components

Vue2

$ npm i tj-virtual-components @vue/composition-api

or

$ yarn add tj-virtual-components @vue/composition-api

使用

<script>
  import { VirtualTree } from 'tj-virtual-components';
  import 'tj-virtual-components/lib/style.css';

  export default {
    components: {
      VirtualTree,
    },
  };
</script>

<template>
	<VirtualTree :visible-count="10" :data="nodes" />
</template>

也可以全局引入

// main.ts
import { createApp } from 'vue';
import App from './App.vue';

import VirtualComponents from 'tj-virtual-components';
import 'tj-virtual-components/lib/style.css';

new createApp(App).use(VirtualComponents).mount('#app');

注意: 全局使用时组件会增加 TJ 前缀, 也就是

Props

| 属性 | 说明 | 类型 | 默认值 | | -------------------- | ------------------------------------------------------------ | ---------- | ------------- | | data | 虚拟树展示的数据 | TreeNode[] | - | | visibleCount | 必填项,可视区域的元素数量 | number | - | | itemHeight | 元素高度 | number | 30 | | defaultExpandedKeys | 默认展开项的 id 数组 | string[] | [] | | defaultCheckedKeys | 默认选中项的 id 数组 | string[] | [] | | showCheckbox | 是否显示复选框 | boolean | false | | emptyText | 空提示 | string | No Data | | checkStrictly | 在显示复选框的情况下,是否严格的遵循父子不互相关联的做法 | boolean | false | | indent | 相邻级节点间的水平缩进, 单位为像素 | number | 15 | | load | 懒加载回调函数,接受两个参数 (node, resolve), 使用 resolve(data) 返回对应数据, 定义该属性后子节点会进行懒加载,data 将会失效 | Function | - | | prop | 自定义节点属性名 | Prop | 查看下方 Prop | | bufferCount | 虚拟列表缓冲区域节点数量 | number | 3 | | onLoadMore | 加载更多回调函数,接受两个参数 (parentKey, resolve), 使用 resolve(data) 返回对应数据 | Function | - | | onCreateLoadMoreNode | 在创建 loadMoreNode 时会进行调用,如果返回 false 则不会创建 loadMoreNode,无返回值或 true 则会创建 loadMoreNode,使用该钩子函数,你可以自定义 loadMore 的显隐,它会传递一个 node 参数。 | Function | - | | isDrag | 节点是否可拖拽 | boolean | false

注:在懒加载时,Tree 内部无法判断当前节点下是否存在子节点,你需要定义一个 loading 字段,如果该字段为 true 则说明该节点下有子节点,这时可以进行懒加载,如果为 false 则没有展开 icon ,也不会进行懒加载。

Prop

interface Prop {
  value: string;
  label: string;
  children: string;
  loading: string;
}

const prop: Prop = {
  value: 'id',
  label: 'label',
  children: 'children',
  loading: 'loading',
};

Events

| 事件名 | 说明 | 参数 | | ---------------- | ---------------------- | --------------- | | node-expand | 节点展开时触发 | node | | node-collapse | 节点折叠时触发 | node | | check | 复选框被点击的时候触发 | (node, checked) | | node-click | 节点点击时触发 | (node, event) | | node-contextmenu | 节点右击触发 | (node, event) | | node-drop | 拖拽成功完成时触发的事件 | (draggingNode, dragEvent, dropType) |

Methods

| 方法名 | 说明 | 参数 | | ------------------- | ------------------------- | ------------------------------------------------------------ | | setData | 重新设置 Tree 数据 | (node: TreeNode[]) | | insertSiblingNodes | 插入兄弟节点数据 | (referKey: 参照节点 Key, nodes: TreeNode[]) | | insertBefore | 为 Tree 的一个节点的前面增加一个节点 | (referKey: 参照节点 Key, nodes: TreeNode) | | insertAfter | 为 Tree 的一个节点的后面增加一个节点 | (referKey: 参照节点 Key, node: TreeNode) | | appendChildren | 为 Tree 中的一个节点追加一个子节点 | (parentKey: 父节点 Key, node: TreeNode) | | updateNode | 更新节点数据 | (nodeKey: 节点 Key, node: TreeNode, deep?: boolean 是否更新 children 数据) | | updateChildren | 更新节点的 chilren 数据 | (parentKey: 父节点 Key, nodes: TreeNode[]) | | removeNode | 删除指定节点 | (nodeKey: 节点 key) | | removeChildren | 删除指定节点子节点列表 | (nodeKey: 节点 key) | removeNodeChildren | 删除指定节点指定子节点 | (parentKey: 父节点 Key, nodeKey: 节点 key) | | getCheckedKeys | 获取选中节点的 key 数组 | - | | getHalfCheckedKeys | 获取半选中节点的 key 数组 | - | | getExpandedKeys | 获取展开节点的 key 数组 | - | | setExpandedKeys | 设置展开节点 | (Keys: NodeKeys[]) | | setCheckedKeys | 设置选中节点 | (Keys: NodeKeys[]) | | getCheckedNodes | 获取选中节点 | - | | getExpandedNodes | 获取展开节点 | - | | getHalfCheckedNodes | 获取半选中节点 | - | | getNode | 根据 key 拿到 Tree 组件中的 node | (nodeKey: 节点 key)|

Slots

| 插槽 | 说明 | 参数 | | --------- | ---------------------------- | ------------- | | default | 默认插槽, 用于自定义渲染节点 | node 节点信息 | | icon | 自定义节点的 icon 图标 | - | | empty | 自定义空数据展示 | - | | load-more | 自定义 load-more 按钮 | - |