Drupal 8 includes views in the core. Views (module) is one of the most powerful functionality of Drupal. This is a views/ajax api snippet to call the views with some arguments and views details.
let contentWrapper = '#div-id';
let args = [arg1,arg2];
$.ajax({
'url': Drupal.url('views/ajax'),
'type': 'POST',
'data': {
'view_name': 'view_name',
'view_display_id': 'block|page',
'view_args': args,
},
'dataType': 'json',
'async': false,
'success': function (response) {
if (response[3] !== undefined) {
var viewHtml = response[3].data;
// Remove previous div html inner data and add the new ones.
$(contentWrapper).html('');
$(contentWrapper).append(viewHtml);
// In order to keep the Ajax functionality of the view this is the crucial part
// Attach Latest update to settings to the behaviours and settings.
Drupal.settings = response[0].settings;
drupalSettings.views = response[0].settings.views;
Drupal.attachBehaviors($(contentWrapper)[0], Drupal.settings);
}
}
}
});