UNPKG

vue-component-media-queries

Version:
61 lines (54 loc) 1.83 kB
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.11/vue.js"></script> <script src="../dist/index.js"></script> <div id="csr"></div> <div id="ssrDesktop" data-server-rendered="true"><div data-test-ssr-desktop="true">isDesktop</div></div> <div id="ssrMobile" data-server-rendered="true"><div data-test-ssr-mobile="true">isMobile</div></div> <script> const { MediaQueryProvider, MatchMedia } = VueComponentMediaQueries; const queries = { mobile: '(max-width: 800px)' } var csr = new Vue({ render(h) { return h(MediaQueryProvider, { props: { queries } }, [ h('div', [ h(MatchMedia, { scopedSlots: { default({ mobile }) { return h('div', { attrs: { 'data-test-csr': true } }, mobile ? 'isMobile' : 'isDesktop') } } }) ]) ]) } }).$mount('#csr'); var ssrDesktop = new Vue({ render(h) { return h(MediaQueryProvider, { props: { queries, ssr: true } }, [ h('div', [ h(MatchMedia, { scopedSlots: { default({ mobile }) { return h('div', { attrs: { 'data-test-ssr-desktop': true } }, mobile ? 'isMobile' : 'isDesktop') } } }) ]) ]) } }).$mount('#ssrDesktop'); var ssrMobile = new Vue({ render(h) { return h(MediaQueryProvider, { props: { queries, ssr: true } }, [ h('div', [ h(MatchMedia, { scopedSlots: { default({ mobile }) { return h('div', { attrs: { 'data-test-ssr-mobile': true } }, mobile ? 'isMobile' : 'isDesktop') } } }) ]) ]) } }).$mount('#ssrMobile'); </script>