OK, so not offering anything really new here, just restating what has already been posted in a way that more directly answers @sandeep_rp1 's question:
Yes, you can come up with a more user-friendly solution, if you are ready to put in a bit of work. Because you can pass string variables of any content, you could, for example, pass an XML resource URL or a GUID for a CDS record; whatever you want to use to store your full config.
To make it user-friendly, you might create a custom entity called "PCF Config" and add to it fields that represent the config you want folks to be able to control. So, your PCF loads, then the first thing it does is use the WebAPI (assuming you're deployed in a model-driven app) to call that record and retrieve its config.
In fact, you could have the config be user-specific and never pass any string to the PCF; just query for the config record owned by the current user, then default to some set of params if they haven't set up any user preferences. That would make for a pretty good user experience. The caveat to that would be user counts. If your deployment has 40K users, the UI experience might be sluggish if it has to query and page through all those results, but if you only have a couple thousand users, it should be plenty quick enough as long as you <>.filter() the results and don't try to loop through them.