2
0
mirror of https://github.com/tenrok/vue-select.git synced 2026-05-17 02:29:37 +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 {
data: () => ({
Deselect: {
render: createElement => createElement('button', 'Clear'),
render: createElement => createElement('span', ''),
},
}),
};
@@ -1,20 +1,18 @@
<template>
<v-select
:options="['Vue.js', 'React', 'Angular']"
:components="components"
:components="{Deselect, OpenIndicator}"
/>
</template>
<script>
export default {
data: () => ({
components: {
Deselect: {
render: createElement => createElement('button', '❌'),
},
OpenIndicator: {
render: createElement => createElement('span', '🔽'),
},
Deselect: {
render: createElement => createElement('span', '❌'),
},
OpenIndicator: {
render: createElement => createElement('span', '🔽'),
},
}),
};
@@ -1,29 +1,21 @@
<template>
<div>
<v-select
multiple
v-model="selected"
:options="['Canada', 'United States']"
:components="{Deselect}"
multiple
v-model="selected"
:options="['Canada', 'United States']"
:components="{Deselect}"
/>
</div>
</template>
<script>
import Vue from 'vue';
export default {
data: () => ({
selected: ['Canada']
}),
computed: {
Deselect () {
return Vue.component('Deselect', {
render (createElement) {
return createElement('button', 'Clear');
},
});
selected: ['Canada'],
Deselect: {
render: createElement => createElement('span', '❌'),
},
},
}),
};
</script>
+4 -10
View File
@@ -22,15 +22,13 @@ a simple `<button>Clear</button>` instead.
export default {
data: () => ({
Deselect: {
render: createElement => createElement('button', 'Clear'),
render: createElement => createElement('span', '❌'),
},
}),
};
```
<ClientOnly>
<ClearButtonOverride />
</ClientOnly>
The same approach applies for `multiple` selects:
@@ -55,9 +53,7 @@ export default {
};
```
<ClientOnly>
<OpenIndicatorOverride />
</ClientOnly>
<OpenIndicatorOverride />
## Setting Globally at Registration
@@ -71,7 +67,7 @@ import vSelect from 'vue-select';
// Set the components prop default to return our fresh components
vSelect.props.components.default = () => ({
Deselect: {
render: createElement => createElement('button', '❌'),
render: createElement => createElement('span', '❌'),
},
OpenIndicator: {
render: createElement => createElement('span', '🔽'),
@@ -82,7 +78,5 @@ vSelect.props.components.default = () => ({
Vue.component(vSelect)
```
<ClientOnly>
<CustomComponentRegistration />
</ClientOnly>
<CustomComponentRegistration />