I think it would be best to create a instance per image/view. That way you can bind exactly the right events once, without having to unbind/bind each time. This means the view is only created when it's needed, and it's tailored to requirements. 

I wouldn't be concerned with performance here, calling `.render()` is the expensive part. Sharing a single view for image and video will have negligible/no performance improvement.