0.1.0 • Published 7 months ago

@passerelle/insider-vue v0.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

@passerelle/insider-vue

@passerelle/insider-vue is a Vue.js plugin that enables seamless integration of the passerelle library within Vue.js applications. This plugin simplifies the integration of the passerelle Insider concept, allowing you to efficiently communicate with the passerelle Enclosure.

Passerelle Insider

The Insider is a core concept in the passerelle library, serving as the child-side plugin responsible for communication with the parent-side Enclosure component. It facilitates the exchange of information between the parent and child components, including SPA transition data and other essential details.

Support

  • Vue.js 2.7+ or 3.0+
  • Vue-Router 3.6+ or 4.0+

Usage

@passerelle/insider-vue allows you to harness the power of the passerelle Insider within your Vue and Nuxt applications with minimal effort. Here's how you can get started:

1. Installation: Install @passerelle/insider-vue in your project using npm or yarn

npm install @passerelle/insider-vue

2. Import: Import the plugin in your Vue application

e.g. If you are using Vue 3:

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'

import { insider } from '@passerelle/insider-vue'

const app = createApp(App)

app.use(router)
app.use(insider, { router, key: 'passerelle-example', origin: '*' })

app.mount('#app')

e.g. If you are using Vue 2:

import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './App.vue'
import router from './router'

import { insider } from '@passerelle/insider-vue'

Vue.use(VueRouter)
Vue.use(insider, { router, key: 'passerelle-example', origin: '*' })

new Vue({
  el: '#app',
  router,
  render: h => h(App)
})

ex. Usage: You can use the insider component in your Vue application

e.g. If you are using the composition API:

<script setup>
import { useCommunicator } from '@passerelle/insider-vue'

const { hooks } = useCommunicator()

hooks.on('navigate', (path) => {
  console.log('navigate', path)
})
</script>

Api

Composable: useCommunicator

Get passerelle communicator.

Composable: sendData

Send data to enclosure.

Note: It is recommended not to send domain data.

  • key: The key of the data to be sent.
  • data: The data to be sent.
import { sendData } from '@passerelle/insider-vue'

sendData('login-user', loginUser)

Composable: onReceivedData

Receive data from enclosure.

  • key: The key of the data to be received.
  • callback: The callback function to receive data from the enclosure.
import { onReceivedData } from '@passerelle/insider-vue'

onReceivedData('login-user', (data) => {
  console.log('login-user', data)
})

Composable: useFrameLayout

Get the frame layout.

The value also changes when the layout changes on the enclosure side.

When using an iframe, absolute position elements such as modals do not appear in the center when viewed from outside the iframe, so this composable is used to obtain information to address this issue.

  • enclosure
    • window .. The window size of the enclosure.
  • insider
    • window .. The window size of the insider.
    • offset .. The offset of the insider.
import { useFrameLayout } from '@passerelle/insider-vue'

const layout = useFrameLayout()

Context: $passerelle

$passerelle is added to the Vue context, and you can access the Communicator from here.

<script>
import { defineComponent } from 'vue'

export default defineComponent({
  computed: {
    top(): number {
      this.$passerelle.layout.insider.offset.top
    }
  }
})
</script>