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:
@@ -11,7 +11,7 @@
|
|||||||
export default {
|
export default {
|
||||||
data: () => ({
|
data: () => ({
|
||||||
Deselect: {
|
Deselect: {
|
||||||
render: createElement => createElement('button', 'Clear'),
|
render: createElement => createElement('span', '❌'),
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,20 +1,18 @@
|
|||||||
<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('span', '❌'),
|
||||||
render: createElement => createElement('button', '❌'),
|
},
|
||||||
},
|
OpenIndicator: {
|
||||||
OpenIndicator: {
|
render: createElement => createElement('span', '🔽'),
|
||||||
render: createElement => createElement('span', '🔽'),
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,29 +1,21 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<v-select
|
<v-select
|
||||||
multiple
|
multiple
|
||||||
v-model="selected"
|
v-model="selected"
|
||||||
:options="['Canada', 'United States']"
|
:options="['Canada', 'United States']"
|
||||||
:components="{Deselect}"
|
:components="{Deselect}"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Vue from 'vue';
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data: () => ({
|
data: () => ({
|
||||||
selected: ['Canada']
|
selected: ['Canada'],
|
||||||
}),
|
Deselect: {
|
||||||
computed: {
|
render: createElement => createElement('span', '❌'),
|
||||||
Deselect () {
|
|
||||||
return Vue.component('Deselect', {
|
|
||||||
render (createElement) {
|
|
||||||
return createElement('button', 'Clear');
|
|
||||||
},
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
},
|
}),
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -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>
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user