style: auto-complete
							parent
							
								
									2a536380bc
								
							
						
					
					
						commit
						c84657012d
					
				| 
						 | 
				
			
			@ -10,7 +10,13 @@ Autocomplete function of input field.
 | 
			
		|||
 | 
			
		||||
## When To Use
 | 
			
		||||
 | 
			
		||||
When there is a need for autocomplete functionality.
 | 
			
		||||
- When you need an input box instead of a selector.
 | 
			
		||||
- When you need input suggestions or helping text.
 | 
			
		||||
 | 
			
		||||
The differences with Select are:
 | 
			
		||||
 | 
			
		||||
- AutoComplete is an input box with text hints, and users can type freely. The keyword is aiding **input**.
 | 
			
		||||
- Select is selecting among given choices. The keyword is **select**.
 | 
			
		||||
 | 
			
		||||
## API
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -58,7 +64,7 @@ When there is a need for autocomplete functionality.
 | 
			
		|||
 | 
			
		||||
### Part of the api in v2 are not available in v3?
 | 
			
		||||
 | 
			
		||||
AutoComplete is an Input component that supports auto complete tips. As such, it should not support props like `labelInValue` that affect value display. In v2, the AutoComplete implementation can not handle the case where the `value` and `label` are identical. v3 not longer support `label` as the value input.
 | 
			
		||||
AutoComplete is an Input component that supports auto complete tips. As such, it should not support props like `labelInValue` that affect value display. In v3, the AutoComplete implementation can not handle the case where the `value` and `label` are identical. v4 not longer support `label` as the value input.
 | 
			
		||||
 | 
			
		||||
Besides, to unify the API, `dataSource` is replaced with `options`. You can migrate with the following change:
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
import type { App, Plugin, VNode, ExtractPropTypes } from 'vue';
 | 
			
		||||
import type { App, VNode, ExtractPropTypes } from 'vue';
 | 
			
		||||
import { defineComponent, ref } from 'vue';
 | 
			
		||||
import Select, { selectProps } from '../select';
 | 
			
		||||
import PropTypes from '../_util/vue-types';
 | 
			
		||||
| 
						 | 
				
			
			@ -44,8 +44,6 @@ const AutoComplete = defineComponent({
 | 
			
		|||
  },
 | 
			
		||||
  emits: ['change', 'select', 'focus', 'blur'],
 | 
			
		||||
  slots: ['option'],
 | 
			
		||||
  Option,
 | 
			
		||||
  OptGroup,
 | 
			
		||||
  setup(props, { slots, attrs, expose }) {
 | 
			
		||||
    warning(
 | 
			
		||||
      !('dataSource' in slots),
 | 
			
		||||
| 
						 | 
				
			
			@ -145,15 +143,13 @@ const AutoComplete = defineComponent({
 | 
			
		|||
});
 | 
			
		||||
 | 
			
		||||
/* istanbul ignore next */
 | 
			
		||||
AutoComplete.install = function (app: App) {
 | 
			
		||||
  app.component(AutoComplete.name, AutoComplete);
 | 
			
		||||
  app.component(AutoComplete.Option.displayName, AutoComplete.Option);
 | 
			
		||||
  app.component(AutoComplete.OptGroup.displayName, AutoComplete.OptGroup);
 | 
			
		||||
  return app;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default AutoComplete as typeof AutoComplete &
 | 
			
		||||
  Plugin & {
 | 
			
		||||
    readonly Option: typeof Option;
 | 
			
		||||
    readonly OptGroup: typeof OptGroup;
 | 
			
		||||
  };
 | 
			
		||||
export default Object.assign(AutoComplete, {
 | 
			
		||||
  Option,
 | 
			
		||||
  OptGroup,
 | 
			
		||||
  install(app: App) {
 | 
			
		||||
    app.component(AutoComplete.name, AutoComplete);
 | 
			
		||||
    app.component(Option.displayName, Option);
 | 
			
		||||
    app.component(OptGroup.displayName, OptGroup);
 | 
			
		||||
    return app;
 | 
			
		||||
  },
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,4 +3,3 @@ import './index.less';
 | 
			
		|||
 | 
			
		||||
// style dependencies
 | 
			
		||||
import '../../select/style';
 | 
			
		||||
import '../../input/style';
 | 
			
		||||
		Loading…
	
		Reference in New Issue