Alter an existing view definition
Providing a view by using hook_views_default_views() is no longer possible. In D8 views are configuration entities. This means when a module wants to provide a view, it puts a yml file in /config/install.

If you want to change a view in code, load the view, change it and save it.

$view = View::load('test_filter_taxonomy_index_tid');
$display =&amp; $view-&gt;getDisplay('default');
$display['display_options']['filters']['tid']['type'] = 'textfield';
$view-&gt;save();


A third alternative is to change the view directly in configuration, for example replace it with the content of a yml file:

$config_path = drupal_get_path('module', 'mymodule') . '/config/optional/views.view.myview.yml';
$data = \Symfony\Component\Yaml::parse(file_get_contents($config_path));
\Drupal::configFactory()-&gt;getEditable('views.view.myview')-&gt;setData($data)-&gt;save(TRUE);


The last option might be the easiest for your use case. You can configure the view in ui, export it to a yml file and use this file to overwrite the configuration of an existing view in hook_install().