To load dynamically page layouts using url value you will have to use php _GET form method and some programming logic to check the value. Here it goes something like this :
Lets say you have 3 different custom layouts page named ... grid-layout.php
fullwidth-layout.php
and last one is masonary-layout.php
. Remember you will have to create manual menu pages using wp custom links system. Like this

Create three different pages with custom permalinks ..... Lets say put this code into URL box
Change yoursite.com with your own site address.Anything after "layout=" is the value of get method.
Similar like url box put this names or anything you want into Link Text box :
- Grid Layout
- Masonary Layout
- Full Width Layout
If its done then lets go ahead towards our coding section.
Find where your site's while ( have_posts() ) : the_post();
loop is located searching...... searching..... ow! found it?? Congrates! Put below code there to get the url value to change your site's layout dynamically.
<?php
$layout = $_GET['layout'];
switch ($layout) {
case 'grid': get_template_part( 'layouts/grid', 'layout' );
break;
case 'masonary': get_template_part( 'layouts/masonary', 'layout' );
break;
case 'fullwidth': get_template_part( 'layouts/fullwidth', 'layout' );
break;
default: get_template_part( 'layouts/content', 'single' );
break;
}
?>
Note: layouts/
is the directory folder where your template files are located like grid-layout.php , masonary-layout.php etc..
Above codes are tested and working fine if you have any issue then let me know otherwise if it works then upvote it and accept it as an answer so that others can know that this codes works.... Thank you