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

passive-component

v1.1.1

Published

passive render vue component

Downloads

2

Readme

介绍

在vue项目中要控制一个组件(如:dialog)的显示和隐藏通用的方案可以通过指令v-if v-show

  • v-if的特点是首次不用渲染,缺点是每次改变状态时都需实例化组件,对于频繁改变状态的组件性能较差
  • v-show的特点是自动实例化,通过样式dispaly控制显示和隐藏。缺点是可能这个组件用户一直用不到,或者当页面上有很多通过v-show控制的组件时,首屏实例化了很多无效的vue组件,构造了很多无用的DOM

场景

本人在项目中遇到以下场景:一个路由页面中有6个以上的类dialog组件,组件内部又很复杂,像多个select(options选项都在10个以上)。在此场景下我们既要v-if的需要时渲染又要v-show的性能

指南

passiveComponent通过vue插件的形式实现了这一目标

1,引入
	import Vue from 'vue'
	import PassiveComponent from 'passive-component'
	
	Vue.use(PassiveComponent)
	
2,API
  • $passiveRender(renderComponent, listeners)

example

//testComponent.vue
<template>
	<div v-show="show">
		<p>show something</p>
		<button @click="close">close</button>
		<button @click="triggerEvent">action</button>
	</div>
</template>
<script>
	export default {
		data () {
			return {
				show: false
			}
		},
		methods: {
			triggerEvent () {
				this.$emit('change', 'change show')
			},
			close () {
				this.show = false
			}
		}
	}
</script>
// app.vue
<template>
	<div>
		<button @click="renderCom"></button>
	</div>
</template>
<script>
	import testComponent from './testComponent.vue'
	export default {
		data () {
			return {}
		},
		methods: {
			renderCom () {
				// 通过this.passiveRender 渲染testComponent组件到DOM
				this._testComRender = this.$passiveRender(testComponent, {
					change (value) {
						console.dir(value)
					}
				})
				this._testComRender.show = true
			}
		}
	}
</script>