gun
サーバー側とクライアント側の変数にアクセスしたい。
これは私のモジュールです:
import Gun from 'gun/gun'
import Sea from 'gun/sea' // eslint-disable-line no-unused-vars
export const gun = Gun({
localStorage: true,
radisk: true,
peers: ['http://localhost:8765/gun']
})
Nuxt
を優先して放棄したいだった場合、次のSapper
ように実装します。
import Gun from 'gun/gun'
import 'gun/sea'
import 'gun/lib/open'
const gun = Gun({
localStorage: true,
radisk: true,
peers: ['http://localhost:8765/gun']
})
export default ({ app }, inject) => {
inject('gun', () => gun)
}
// nuxt.config.js
...
plugins: [{ src: '@/plugins/gun.js' }]
...
したがって、私は$gun
どこにでもアクセスできます:
サーバー側:
export default {
asyncData(context){
context.app.$gun()
}
}
そしてクライアント側では:
methods: {
submit() {
const gun = this.$gun()
const user = this.$gun().user()
...
}
}
また、テンプレートで:
<template>
<div>{{ $gun }}</div>
</tempalte>
この質問は、質問で議論されている特定のライブラリの使用には関係ありません ( gun
)。これは、Websocet
接続 (変数 sun を同じ方法で渡しws
ます) または rpc ( と接続するBitcoin
) のいずれかです。これが重要になる例をたくさん挙げることができます。
を介してこれを実装する必要があることをrollbar
どこかで読んだり、通常のモジュール(es6
または.svelte
)について読んだりしましたが、他の多くの問題に遭遇しました...