pub fn view<F>(mut self, val: F) -> Self
    where
        F: Fn(Scope) -> View<G> + Send + Sync + 'static,
    {
        self.view = Box::new(move |app_cx, _preload_info, _template_state, path| {
            let reactor = Reactor::<G>::from_cx(app_cx);
            // Declare that this page/widget will never take any state to enable full
            // caching
            reactor.register_no_state(&path, false);

            // Nicely, if this is a widget, this means there need be no network requests
            // at all!
            let mut view = View::empty();
            let disposer = ::sycamore::reactive::create_child_scope(app_cx, |child_cx| {
                view = val(child_cx);
            });
            Ok((view, disposer))
        });
        self
    }
Sets the template rendering function to use for templates that take no
state. Templates that do take state should use
`.template_with_state()` instead.
packages/perseus/src/template/core/state_setters.rs