subspace-site/react.html

104 lines
24 KiB
HTML
Raw Normal View History

2020-01-17 22:18:10 +00:00
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>React | SUBSPACE</title>
<meta name="description" content="Reactive ÐApp Development">
2020-03-17 18:18:58 +00:00
<meta name="generator" content="VuePress 1.3.1">
2020-01-17 22:18:10 +00:00
<link rel="apple-touch-icon" sizes="180x180" href="/assets/img/logo-small.png">
<link rel="icon" type="image/png" sizes="32x32" href="/assets/img/logo-small.png">
<link rel="icon" type="image/png" sizes="16x16" href="/assets/img/logo-small.png">
<link rel="shortcut icon" href="/assets/img/logo-small.png">
<meta name="theme-color" content="#ffffff">
2020-03-17 18:18:58 +00:00
<link rel="preload" href="/assets/css/0.styles.b4d346dc.css" as="style"><link rel="preload" href="/assets/js/app.00a46c5f.js" as="script"><link rel="preload" href="/assets/js/3.072ab49d.js" as="script"><link rel="preload" href="/assets/js/12.792fcfd2.js" as="script"><link rel="prefetch" href="/assets/js/10.4595e7f8.js"><link rel="prefetch" href="/assets/js/11.638336c9.js"><link rel="prefetch" href="/assets/js/13.a67d614a.js"><link rel="prefetch" href="/assets/js/14.b783779c.js"><link rel="prefetch" href="/assets/js/15.1d9ae469.js"><link rel="prefetch" href="/assets/js/16.d0bf4930.js"><link rel="prefetch" href="/assets/js/17.c66feffd.js"><link rel="prefetch" href="/assets/js/18.ec597d92.js"><link rel="prefetch" href="/assets/js/19.a3968107.js"><link rel="prefetch" href="/assets/js/2.af279185.js"><link rel="prefetch" href="/assets/js/4.336e58fa.js"><link rel="prefetch" href="/assets/js/5.5969a423.js"><link rel="prefetch" href="/assets/js/6.169a8ab4.js"><link rel="prefetch" href="/assets/js/7.da8dc444.js"><link rel="prefetch" href="/assets/js/8.7bad8100.js"><link rel="prefetch" href="/assets/js/9.01449017.js">
<link rel="stylesheet" href="/assets/css/0.styles.b4d346dc.css">
2020-01-17 22:18:10 +00:00
</head>
<body>
2020-01-29 20:27:38 +00:00
<div id="app" data-server-rendered="true"><div class="theme-container"><script type="text/javascript">
(function(f, a, t, h, o, m){
a[h]=a[h]||function(){
(a[h].q=a[h].q||[]).push(arguments)
};
o=f.createElement('script'),
m=f.getElementsByTagName('script')[0];
o.async=1; o.src=t; o.id='fathom-script';
m.parentNode.insertBefore(o,m)
})(document, window, '//fathom.status.im/tracker.js', 'fathom');
fathom('set', 'siteId', 'DNONS');
fathom('trackPageview');
2020-02-11 14:09:43 +00:00
</script> <header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><img src="/assets/img/logo-small.png" alt="SUBSPACE" class="logo"> <span class="site-name can-hide">SUBSPACE</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/getting-started/" class="nav-link">Getting Started</a></div><div class="nav-item"><a href="/integrations-overview.html" class="nav-link">Integrations</a></div><div class="nav-item"><a href="/api.html" class="nav-link">API</a></div><div class="nav-item"><a href="https://github.com/embarklabs/subspace" target="_blank" rel="noopener noreferrer" class="nav-link external">
2020-01-17 22:18:10 +00:00
Github
2020-02-11 14:09:43 +00:00
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/getting-started/" class="nav-link">Getting Started</a></div><div class="nav-item"><a href="/integrations-overview.html" class="nav-link">Integrations</a></div><div class="nav-item"><a href="/api.html" class="nav-link">API</a></div><div class="nav-item"><a href="https://github.com/embarklabs/subspace" target="_blank" rel="noopener noreferrer" class="nav-link external">
2020-01-17 22:18:10 +00:00
Github
2020-03-17 18:18:58 +00:00
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav> <ul class="sidebar-links"><li><a href="/" class="sidebar-link">Home</a></li><li><a href="/how-it-works.html" class="sidebar-link">How it works?</a><ul class="sidebar-sub-headers"></ul></li><li><a href="/getting-started.html" class="sidebar-link">Getting Started</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/getting-started.html#installation" class="sidebar-link">Installation</a></li><li class="sidebar-sub-header"><a href="/getting-started.html#importing-the-library" class="sidebar-link">Importing the library</a></li><li class="sidebar-sub-header"><a href="/getting-started.html#connecting-to-a-web3-provider" class="sidebar-link">Connecting to a web3 provider</a></li><li class="sidebar-sub-header"><a href="/getting-started.html#enhancing-your-contract-objects" class="sidebar-link">Enhancing your contract objects</a></li><li class="sidebar-sub-header"><a href="/getting-started.html#reacting-to-data" class="sidebar-link">Reacting to data</a></li><li class="sidebar-sub-header"><a href="/getting-started.html#tracking-state" class="sidebar-link">Tracking state</a></li><li class="sidebar-sub-header"><a href="/getting-started.html#tracking-events" class="sidebar-link">Tracking events</a></li><li class="sidebar-sub-header"><a href="/getting-started.html#tracking-balances" class="sidebar-link">Tracking balances</a></li><li class="sidebar-sub-header"><a href="/getting-started.html#getting-block-data-gas-prices-and-block-time" class="sidebar-link">Getting block data, gas prices and block time</a></li><li class="sidebar-sub-header"><a href="/getting-started.html#subscriptions" class="sidebar-link">Subscriptions</a></li><li class="sidebar-sub-header"><a href="/getting-started.html#cleanup" class="sidebar-link">Cleanup</a></li></ul></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Integrations</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/integrations-overview.html" class="sidebar-link">Overview</a></li><li><a href="/react.html" class="active sidebar-link">React</a><ul class="sidebar-sub-headers"></ul></li><li><a href="/vue.html" class="sidebar-link">Vue</a><ul class="sidebar-sub-headers"></ul></li><li><section class="sidebar-group is-sub-group depth-1"><p class="sidebar-heading"><span>Redux</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/redux.html" class="sidebar-link">redux</a><ul class="sidebar-sub-headers"></ul></li><li><a href="/redux-observable.html" class="sidebar-link">redux-observable</a></li></ul></section></li><li><a href="/reactive-graphql.html" class="sidebar-link">reactive-graphql</a><ul class="sidebar-sub-headers"></ul></li><li><a href="/apollo-client.html" class="sidebar-link">apollo-client</a><ul class="sidebar-sub-headers"></ul></li></ul></section></li><li><a href="/tutorial.html" class="sidebar-link">Tutorial</a></li><li><a href="/api.html" class="sidebar-link">API</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/api.html#general" class="sidebar-link">General</a></li><li class="sidebar-sub-header"><a href="/api.html#contract-methods" class="sidebar-link">Contract methods</a></li><li class="sidebar-sub-header"><a href="/api.html#blocks-gas-price-and-block-time" class="sidebar-link">Blocks, gas price and block time</a></li><li class="sidebar-sub-header"><a href="/api.html#low-level-api-for-data-tracking" class="sidebar-link">Low level API for data tracking</a></li></ul></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="react"><a href="#react" class="header-
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><h3 id="usage"><a href="#usage" class="header-anchor">#</a> Usage</h3> <h4 id="subspaceprovider"><a href="#subspaceprovider" class="header-anchor">#</a> SubspaceProvider</h4> <p>To use most of the <code>subspace-react</code> components, you need to wrap your app with the <code>&lt;SubspaceProvider web3={web3} /&gt;</code> component. This will make Subspace available to any nested components that accesses it via the <code>useSubspace</code> hook or has been wrapped in the <code>withSubspace</code> higher order component. Any React component might use Subspace so it makes sense to add the provider near the top level of your dApp. The <code>SubspaceProvider</code> requires a web3 object</p> <div class="language-js line-numbers-mode"><pre class="language-js"><code><span class="token comment">// index.js</span>
<span class="token keyword">import</span> React <span class="token keyword">from</span> <span class="token string">'react'</span>
<span class="token keyword">import</span> ReactDOM <span class="token keyword">from</span> <span class="token string">'react-dom'</span>
<span class="token keyword">import</span> MyApp <span class="token keyword">from</span> <span class="token string">'./MyApp'</span>
<span class="token keyword">import</span> <span class="token punctuation">{</span> SubspaceProvider <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@embarklabs/subspace-react'</span><span class="token punctuation">;</span>
2020-01-17 22:18:10 +00:00
2020-03-17 18:18:58 +00:00
<span class="token keyword">const</span> web3 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Web3</span><span class="token punctuation">(</span><span class="token string">&quot;ws://localhost:8545&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
2020-01-17 22:18:10 +00:00
2020-03-17 18:18:58 +00:00
<span class="token keyword">const</span> rootElement <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span><span class="token string">'root'</span><span class="token punctuation">)</span>
ReactDOM<span class="token punctuation">.</span><span class="token function">render</span><span class="token punctuation">(</span>
<span class="token operator">&lt;</span>SubspaceProvider web3<span class="token operator">=</span><span class="token punctuation">{</span>web3<span class="token punctuation">}</span><span class="token operator">&gt;</span>
<span class="token operator">&lt;</span>MyApp <span class="token operator">/</span><span class="token operator">&gt;</span>
<span class="token operator">&lt;</span><span class="token operator">/</span>SubspaceProvider<span class="token operator">&gt;</span><span class="token punctuation">,</span>
rootElement
<span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br></div></div><h4 id="usesubspace"><a href="#usesubspace" class="header-anchor">#</a> useSubspace</h4> <p>Rather than relying on global variables or passing Subspace through props, The easiest way to access Subspace features is via the <code>useSubspace</code> hook. Be sure that your entire dApp is wrapped with a <code>&lt;SubspaceProvider /&gt;</code> to have it available througout the component tree.</p> <div class="language-js line-numbers-mode"><pre class="language-js"><code><span class="token comment">// index.js</span>
<span class="token keyword">import</span> React <span class="token keyword">from</span> <span class="token string">'react'</span>
<span class="token keyword">import</span> <span class="token punctuation">{</span> useSubspace <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@embarklabs/subspace-react'</span><span class="token punctuation">;</span>
2020-01-17 22:18:10 +00:00
2020-03-17 18:18:58 +00:00
<span class="token keyword">const</span> <span class="token function-variable function">MyComponent</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
<span class="token keyword">const</span> subspace <span class="token operator">=</span> <span class="token function">useSubspace</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
2020-01-17 22:18:10 +00:00
2020-03-17 18:18:58 +00:00
<span class="token comment">// do something....</span>
<span class="token comment">// subspace.trackBalance(web3.eth.defaultAccount);</span>
2020-01-17 22:18:10 +00:00
2020-03-17 18:18:58 +00:00
<span class="token keyword">return</span> <span class="token operator">...</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
2020-01-17 22:18:10 +00:00
2020-03-17 18:18:58 +00:00
<span class="token keyword">export</span> <span class="token keyword">default</span> MyComponent
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br></div></div><h4 id="withsubspace"><a href="#withsubspace" class="header-anchor">#</a> withSubspace</h4> <p>This higher order component is provided as an alternative to the <code>useSubspace</code> hook. This injects the <code>subspace</code> property with an already initialized Subspace instance. Just like with the hook, your entire dApp needs to be wrapped with a <code>&lt;SubspaceProvider /&gt;</code>.</p> <div class="language-js line-numbers-mode"><pre class="language-js"><code><span class="token comment">// index.js</span>
<span class="token keyword">import</span> React <span class="token keyword">from</span> <span class="token string">'react'</span>
<span class="token keyword">import</span> <span class="token punctuation">{</span> withSubspace <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@embarklabs/subspace-react'</span><span class="token punctuation">;</span>
2020-01-17 22:18:10 +00:00
2020-03-17 18:18:58 +00:00
<span class="token keyword">const</span> <span class="token function-variable function">MyComponent</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token parameter">props</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
<span class="token comment">// do something....</span>
<span class="token comment">// props.subspace.trackBalance(web3.eth.defaultAccount);</span>
2020-01-17 22:18:10 +00:00
2020-03-17 18:18:58 +00:00
<span class="token keyword">return</span> <span class="token operator">...</span><span class="token punctuation">;</span>
2020-01-17 22:18:10 +00:00
<span class="token punctuation">}</span>
2020-03-17 18:18:58 +00:00
<span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token function">withSubspace</span><span class="token punctuation">(</span>MyComponent<span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br></div></div><h4 id="observe"><a href="#observe" class="header-anchor">#</a> observe</h4> <p>Useful to make your component subscribe to any observable props it receives when the component is mounted and automatically unsubscribes when the component is unmounted. It can be used with any kind of observables.</p> <div class="language-js line-numbers-mode"><pre class="language-js"><code><span class="token keyword">import</span> <span class="token punctuation">{</span> observe <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@embarklabs/subspace-react'</span><span class="token punctuation">;</span>
2020-01-17 22:18:10 +00:00
2020-03-17 18:18:58 +00:00
<span class="token keyword">const</span> ObserverComponent <span class="token operator">=</span> <span class="token function">observe</span><span class="token punctuation">(</span>WrappedComponent<span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br></div></div><h5 id="example-usage"><a href="#example-usage" class="header-anchor">#</a> Example usage:</h5> <div class="language-js line-numbers-mode"><pre class="language-js"><code><span class="token keyword">const</span> <span class="token function-variable function">MyComponent</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token parameter"><span class="token punctuation">{</span>eventData<span class="token punctuation">}</span></span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
<span class="token comment">// Handle initial state when no data is available</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span>eventData<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token operator">&lt;</span>p<span class="token operator">&gt;</span>No data<span class="token operator">&lt;</span><span class="token operator">/</span>p<span class="token operator">&gt;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> <span class="token operator">&lt;</span>p<span class="token operator">&gt;</span>Value<span class="token operator">:</span> <span class="token punctuation">{</span>eventData<span class="token punctuation">.</span>someReturnValue<span class="token punctuation">}</span><span class="token operator">&lt;</span><span class="token operator">/</span>p<span class="token operator">&gt;</span>
2020-01-17 22:18:10 +00:00
<span class="token punctuation">}</span><span class="token punctuation">;</span>
2020-03-17 18:18:58 +00:00
<span class="token keyword">const</span> MyEnhancedComponent <span class="token operator">=</span> <span class="token function">observe</span><span class="token punctuation">(</span>MyComponent<span class="token punctuation">)</span><span class="token punctuation">;</span>
2020-01-17 22:18:10 +00:00
2020-03-17 18:18:58 +00:00
<span class="token keyword">const</span> <span class="token function-variable function">SomeOtherComponent</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
<span class="token keyword">const</span> myObservable$ <span class="token operator">=</span> MyContractInstance<span class="token punctuation">.</span>events<span class="token punctuation">.</span>MyEvent<span class="token punctuation">.</span><span class="token function">track</span><span class="token punctuation">(</span><span class="token punctuation">{</span>fromBlock<span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> <span class="token operator">&lt;</span>MyEnhancedComponent myProp<span class="token operator">=</span><span class="token punctuation">{</span>myObservable$<span class="token punctuation">}</span> <span class="token operator">/</span><span class="token operator">&gt;</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br></div></div><div class="custom-block warning"><p class="custom-block-title">Handling Contract Objects</p> <p>The variable <code>MyContractInstance</code> is a <code>web3.eth.Contract</code> object pointing to a deployed contract address that has been enhanced with <code>subspace.contract()</code>. You can use a DApp framework like <a href="https://embark.status.im/docs/contracts_javascript.html" target="_blank" rel="noopener noreferrer">Embark<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> to easily import that contract instance: <code>import { MyContract } from './embarkArtifacts/contracts';</code>.</p></div> <div class="custom-block tip"><p>To learn more about how to use <code>subspace-react</code>, there are full working examples available in <a href="https://github.com/embark-framework/subspace/tree/master/examples/" target="_blank" rel="noopener noreferrer">Github<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></p></div></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
2020-01-17 22:18:10 +00:00
2020-01-28 00:22:11 +00:00
<a href="/integrations-overview.html" class="prev">Overview</a></span> <span class="next"><a href="/vue.html">Vue</a>
2020-01-17 22:18:10 +00:00
</span></p></div> </main></div><div class="global-ui"></div></div>
2020-03-17 18:18:58 +00:00
<script src="/assets/js/app.00a46c5f.js" defer></script><script src="/assets/js/3.072ab49d.js" defer></script><script src="/assets/js/12.792fcfd2.js" defer></script>
2020-01-17 22:18:10 +00:00
</body>
</html>