2
0
mirror of https://github.com/tenrok/vue-select.git synced 2026-06-22 10:30:34 +03:00

go ahead and SSR, but don't put a button inside a button (#864)

This commit is contained in:
Jeff Sagal
2019-04-29 12:48:49 -07:00
committed by GitHub
parent 43cd6d34c3
commit ab99763981
4 changed files with 19 additions and 35 deletions
@@ -11,7 +11,7 @@
export default { export default {
data: () => ({ data: () => ({
Deselect: { Deselect: {
render: createElement => createElement('button', 'Clear'), render: createElement => createElement('span', ''),
}, },
}), }),
}; };
@@ -1,21 +1,19 @@
<template> <template>
<v-select <v-select
:options="['Vue.js', 'React', 'Angular']" :options="['Vue.js', 'React', 'Angular']"
:components="components" :components="{Deselect, OpenIndicator}"
/> />
</template> </template>
<script> <script>
export default { export default {
data: () => ({ data: () => ({
components: {
Deselect: { Deselect: {
render: createElement => createElement('button', '❌'), render: createElement => createElement('span', '❌'),
}, },
OpenIndicator: { OpenIndicator: {
render: createElement => createElement('span', '🔽'), render: createElement => createElement('span', '🔽'),
}, },
},
}), }),
}; };
</script> </script>
@@ -10,20 +10,12 @@
</template> </template>
<script> <script>
import Vue from 'vue';
export default { export default {
data: () => ({ data: () => ({
selected: ['Canada'] selected: ['Canada'],
Deselect: {
render: createElement => createElement('span', '❌'),
},
}), }),
computed: {
Deselect () {
return Vue.component('Deselect', {
render (createElement) {
return createElement('button', 'Clear');
},
});
},
},
}; };
</script> </script>
+2 -8
View File
@@ -22,15 +22,13 @@ a simple `<button>Clear</button>` instead.
export default { export default {
data: () => ({ data: () => ({
Deselect: { Deselect: {
render: createElement => createElement('button', 'Clear'), render: createElement => createElement('span', '❌'),
}, },
}), }),
}; };
``` ```
<ClientOnly>
<ClearButtonOverride /> <ClearButtonOverride />
</ClientOnly>
The same approach applies for `multiple` selects: The same approach applies for `multiple` selects:
@@ -55,9 +53,7 @@ export default {
}; };
``` ```
<ClientOnly>
<OpenIndicatorOverride /> <OpenIndicatorOverride />
</ClientOnly>
## Setting Globally at Registration ## Setting Globally at Registration
@@ -71,7 +67,7 @@ import vSelect from 'vue-select';
// Set the components prop default to return our fresh components // Set the components prop default to return our fresh components
vSelect.props.components.default = () => ({ vSelect.props.components.default = () => ({
Deselect: { Deselect: {
render: createElement => createElement('button', '❌'), render: createElement => createElement('span', '❌'),
}, },
OpenIndicator: { OpenIndicator: {
render: createElement => createElement('span', '🔽'), render: createElement => createElement('span', '🔽'),
@@ -82,7 +78,5 @@ vSelect.props.components.default = () => ({
Vue.component(vSelect) Vue.component(vSelect)
``` ```
<ClientOnly>
<CustomComponentRegistration /> <CustomComponentRegistration />
</ClientOnly>