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:
@@ -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>
|
||||
|
||||
@@ -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 />
|
||||
|
||||
|
||||
Reference in New Issue
Block a user