NAME
    Mojolicious::Plugin::Component - Module-based Component Rendering
ABSTRACT
    Module-based Component Rendering Plugin
SYNOPSIS
      package App;
    
      use Mojo::Base 'Mojolicious';
    
      package App::Component::Image;
    
      use Mojo::Base 'Mojolicious::Component';
    
      has alt => 'random';
      has height => 126;
      has width => 145;
      has src => '/random.gif';
    
      1;
    
      # __DATA__
      #
      # @@ component
      #
      #  package main;
    
      my $app = App->new;
    
      my $component = $app->plugin('component');
    
      my $image = $app->component->use('image');
    
      my $rendered = $image->render;
DESCRIPTION
    This package provides Mojolicious module-based component rendering
    plugin.
INHERITS
    This package inherits behaviors from:
    Mojolicious::Plugin
METHODS
    This package implements the following methods:
 register
      register(InstanceOf["Mojolicious"] $app, Maybe[HashRef] $config) : Object
    The register method registers one or more component builders in the
    Mojolicious application. The configuration information can be provided
    when registering the plugin by calling plugin during setup, or by
    specifying the data in the application configuration under the key
    component. By default, if no configuration information is provided the
    plugin will register a builder labeled use which will load components
    under the application's Component namespace.
    register example #1
        package main;
      
        use Mojolicious::Plugin::Component;
      
        my $app = Mojolicious->new;
      
        my $component = Mojolicious::Plugin::Component->new;
      
        $component = $component->register($app);
    register example #2
        package main;
      
        use Mojolicious::Plugin::Component;
      
        my $app = Mojolicious->new;
      
        my $component = Mojolicious::Plugin::Component->new;
      
        $component = $component->register($app, {
          v1 => 'App::V1::Component',
          v2 => 'App::V2::Component',
        });
      
        # $app->component->v1('image')
        # $app->component->v2('image')
AUTHOR
    Al Newkirk, awncorp@cpan.org
LICENSE
    Copyright (C) 2011-2019, Al Newkirk, et al.
    This is free software; you can redistribute it and/or modify it under
    the terms of the The Apache License, Version 2.0, as elucidated in the
    "license file"
    .
PROJECT
    Wiki 
    Project 
    Initiatives
    
    Milestones
    
    Contributing
    
    Issues
    
      package main;
    
      my $app = App->new;
    
      my $component = $app->plugin('component');
    
      my $image = $app->component->use('image');
    
      my $rendered = $image->render;
DESCRIPTION
    This package provides Mojolicious module-based component rendering
    plugin.
INHERITS
    This package inherits behaviors from:
    Mojolicious::Plugin
METHODS
    This package implements the following methods:
 register
      register(InstanceOf["Mojolicious"] $app, Maybe[HashRef] $config) : Object
    The register method registers one or more component builders in the
    Mojolicious application. The configuration information can be provided
    when registering the plugin by calling plugin during setup, or by
    specifying the data in the application configuration under the key
    component. By default, if no configuration information is provided the
    plugin will register a builder labeled use which will load components
    under the application's Component namespace.
    register example #1
        package main;
      
        use Mojolicious::Plugin::Component;
      
        my $app = Mojolicious->new;
      
        my $component = Mojolicious::Plugin::Component->new;
      
        $component = $component->register($app);
    register example #2
        package main;
      
        use Mojolicious::Plugin::Component;
      
        my $app = Mojolicious->new;
      
        my $component = Mojolicious::Plugin::Component->new;
      
        $component = $component->register($app, {
          v1 => 'App::V1::Component',
          v2 => 'App::V2::Component',
        });
      
        # $app->component->v1('image')
        # $app->component->v2('image')
AUTHOR
    Al Newkirk, awncorp@cpan.org
LICENSE
    Copyright (C) 2011-2019, Al Newkirk, et al.
    This is free software; you can redistribute it and/or modify it under
    the terms of the The Apache License, Version 2.0, as elucidated in the
    "license file"
    .
PROJECT
    Wiki 
    Project 
    Initiatives
    
    Milestones
    
    Contributing
    
    Issues