I am currently creating various component entries (under channels). Once created I can then add that specific component to structure (know on my site as a work page).
On the work page I have a dynamic field (see https://github.com/lewisjenkins/craft-dynamic-fields) that allows a user to scroll through these already created component entries in a dropdown list style. That drop down is a dynamic dropdown generated through LJ dynamic fields with the following code in the CMS.
{% include '_dynamicfields/sections' ignore missing %}
From there the included file is as follows...
{% for channel in craft.entries.section('components') %}
{ "value":"{{ channel.id }}" , "label":"{{ channel | raw }}" }
{% if not loop.last %},{% endif %}
{% endfor %}
Unfortunately as of late I'm only seeing the latest 100 entries. I haven't seen any reference in either craft CMS documentation or the LJ Dynamic fields documentation.