All Projects → vinayakkulkarni → vue-identify-network

vinayakkulkarni / vue-identify-network

Licence: MIT license
⚡ Identify what kinda internet your users are using!

Programming Languages

typescript
32286 projects
Vue
7211 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to vue-identify-network

Highlighter.js
Easily navigate the DOM and highlight the elements - http://720kb.github.io/highlighter.js/
Stars: ✭ 370 (+516.67%)
Mutual labels:  dom, navigator
vue2-loading
vue-loading presented in Vue2
Stars: ✭ 15 (-75%)
Mutual labels:  vue2
go-xmldom
XML DOM processing for Golang, supports xpath query
Stars: ✭ 38 (-36.67%)
Mutual labels:  dom
plain-modal
The simple library for customizable modal window.
Stars: ✭ 21 (-65%)
Mutual labels:  window
vue-ckeditor
✏️ Vue2.0 Ckeditor component.
Stars: ✭ 17 (-71.67%)
Mutual labels:  vue2
capsid
💊 Declarative DOM programming library. Lightweight (1.79 kb).
Stars: ✭ 76 (+26.67%)
Mutual labels:  dom
ngx-event-modifiers
Event Modifiers for Angular Applications https://netbasal.com/implementing-event-modifiers-in-angular-87e1a07969ce
Stars: ✭ 14 (-76.67%)
Mutual labels:  dom
glue
Glue是一个基于web component构建的组件库,可以在react,vue2,vue3,angular和html等前端框架中运行
Stars: ✭ 63 (+5%)
Mutual labels:  vue2
there-are-lots-of-people-in-Baiyun-airport
挑战杯 - 广州白云机场人流量时空分布预测系统 - 前端
Stars: ✭ 14 (-76.67%)
Mutual labels:  vue2
MapML
Map Markup Language is hypertext for Web maps, like HTML is hypertext for Web pages https://maps4html.org/MapML/spec/
Stars: ✭ 48 (-20%)
Mutual labels:  dom
vue-music
基于Laravel5.3+Vue2.0的网易云音乐的SPA应用
Stars: ✭ 85 (+41.67%)
Mutual labels:  vue2
jsdom-devtools-formatter
Make jsdom elements look like real DOM elements in Chrome Devtools console
Stars: ✭ 40 (-33.33%)
Mutual labels:  dom
JavaScript-Bootcamp
Complete Documentation For JavaScript Bootcamp Course By Osama Elzero.
Stars: ✭ 27 (-55%)
Mutual labels:  dom
swayer
Schema based frontend framework 👀
Stars: ✭ 40 (-33.33%)
Mutual labels:  dom
sherlock
🔎 Find usernames across social networks
Stars: ✭ 52 (-13.33%)
Mutual labels:  window
tempo
UI framework for the web
Stars: ✭ 15 (-75%)
Mutual labels:  dom
mobile
Go语言中文网移动端版本,使用 Vue.js(2.x) 构建
Stars: ✭ 35 (-41.67%)
Mutual labels:  vue2
prax
Experimental rendering library geared towards hybrid SSR+SPA apps. Focus on radical simplicity and performance. Tiny and dependency-free.
Stars: ✭ 18 (-70%)
Mutual labels:  dom
JsObjExporter
A little JavaScript plugin to generate PDF, XLS, CSV and DOC from JavaScript Object or DOM element only from the frontend!
Stars: ✭ 58 (-3.33%)
Mutual labels:  dom
deno desktop
Windowing support for Deno WebGPU.
Stars: ✭ 49 (-18.33%)
Mutual labels:  window

vue-identify-network ⚡️

GitHub Workflow Status GitHub Workflow Status GitHub release (latest SemVer) npm npm npm bundle size (version) npm type definitions DeepScan grade Snyk Vulnerabilities for GitHub Repo LGTM Alerts LGTM Grade GitHub contributors

built using janak eslint prettier rollup vue typescript

Features

  • Identify the Internet Speed ⚡️ your users have.
  • Built from scratch usign Vue 2 & Composition API with TypeScript
  • For Vue 2.x version – npm i vue-identify-network@2
  • For Vue 3.x version – npm i vue-identify-network@3

Table of Contents

Demo

Edit vue-identify-network-demo

Requirements

Installation

npm install --save vue-identify-network
npm install --save-dev @vue/composition-api

CDN: UNPKG | jsDelivr (available as window.VueIdentifyNetwork)

Build Setup

# install dependencies
$ npm ci

# package the library
$ npm run build

Usage

Globally

As a component

Vue.component('VueIdentifyNetwork', require('vue-identify-network'));

As a plugin

import Vue from 'vue';
import VueIdentifyNetwork from 'vue-identify-network';

Vue.use(VueIdentifyNetwork);

Locally

import { VueIdentifyNetwork } from 'vue-identify-network';

Example

Locally imported as a component
<vue-identify-network
  @network-type="handleNetworkIdentified"
  @network-speed="handleNetworkSpeed"
>
  <template #unknown>
    REEE! Unable to identify your network type.
  </template>
  <template #slow>
    <img src="cat.gif" alt="you got slow internet" />
  </template>
  <template #fast>
    <video width="400" controls>
      <source src="mov_bbb.mp4" type="video/mp4" />
      <source src="mov_bbb.ogg" type="video/ogg" />
      Your browser does not support HTML5 video.
    </video>
  </template>
</vue-identify-network>
import { VueIdentifyNetwork } from 'vue-identify-network';

Vue.component('example-component', {
  components: {
    VueIdentifyNetwork
  },
  setup() {
    function handleNetworkIdentified(type: string) {
      console.log('connection type: ', type);
    }
    function handleNetworkSpeed(speed: number) {
      console.log('downlink: ', speed);
    }
  }
});

API

Slots

Name Description
unknown Named slot for when the type of connection is unidentifyable
slow Named slot for when navigator.connection.effectiveType === '2g'
fast Named slot for when navigator.connection.effectiveType !== '2g'

Props

Name Type Required? Default Description
unknown-class String No null Styling the div which you want to give if network type is undetected.
slow-class String No null Styling the div which you want to give if network type is slow.
fast-class String No null Styling the div which you want to give if network type is fast.

Events

Name Returns Description
@network-type String Emits a string value
@network-speed String Emits a number value

Built with

Contributing

  1. Fork it ( https://github.com/vinayakkulkarni/vue-identify-network/fork )
  2. Create your feature branch (git checkout -b feat/new-feature)
  3. Commit your changes (git commit -Sam 'feat: add feature')
  4. Push to the branch (git push origin feat/new-feature)
  5. Create a new Pull Request

Note:

  1. Please contribute using Github Flow
  2. Commits & PRs will be allowed only if the commit messages & PR titles follow the conventional commit standard, read more about it here
  3. PS. Ensure your commits are signed. Read why

Author

vue-identify-network © Vinayak, Released under the MIT License.
Authored and maintained by Vinayak Kulkarni with help from contributors (list).

vinayakkulkarni.dev · GitHub @vinayakkulkarni · Twitter @_vinayak_k

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].