@metalsadman . Thank you for the example. Took me a while to figure out a few quirks with the q-select props. for anyone looking for this … you can check @metalsadman provided sandbox above , he has done all the work . I want to add few comments for beginners like me . $ quasar new c BaseSelect your custom extended component from quasar ( here is where we will customize the q-select in my case ) add index.js to export your component import BaseSelect from './BaseSelect.vue' export { BaseSelect } next mount it to your vue boot $ quasar new b base-select register the component in your new boot file import * as BaseComponents from 'components' // leave the export, even if you don't use it export default async ({ app, router, Vue }) => { // Globally register the components Object.keys(BaseComponents).map(v => { Vue.component(v, BaseComponents[v]) }) } final step is to go to your quasar.conf.js and add this boot file ( named in quasar new b xxx ) in the boot list array . for q-select>> Few things i run into is to notice or take care ( not to mix multiple prop , on a string data model for q-select) , This way is more expressive and saves lots of time if you need to use the same props over and over again .