I am building a angular component clock.component with p5js. 
Full source from her: https://github.com/avsmips/angular4-p5js-app/blob/master/src/app/analog-clock/analog-clock.component.ts
Html:
<div id="analog-clock-canvas"></div>
Ts:
createCanvas() {
   console.log("creating canvas");
   this.p5 = new p5(p => this.drawing(p));
}
drawing(p) {
   p.setup = () => {
   p.createCanvas(400, 400).parent("analog-clock-canvas");      
   ...
}
p5 creates a canvas and adds into parent div analog-clock-canvas with 1 declaration. However it also add the canvas into the first compoment if multiple compoments are used.
<div class="flow">
  <app-clock></app-clock>
  <app-clock></app-clock>
</div>

 
    