vue构建父组件子组件提取问题

问一下大牛们,我现在有三个页面大致的布局相同,只有几个组件或者文字不一样,怎么构建组件比较好,目前想到两种:

  1. 写一个Common组件,三个页面都引入Common,通过不同的props传值,控制布局
  2. 写一个父组件Common,其他三个页面extends这个父组件,在data,methods里面去控制行为。

哪种比较好,或者大神们都是怎么实现的?

require比extends更符合前端的一般思想。代码上看上去,第一种也比第二种更简单易懂

还是写一个通用组件好