# What is the best practice for extending a component?

**URL:** <https://discuss.emberjs.com/t/what-is-the-best-practice-for-extending-a-component/6453>\
**Category:** Design\
**Created:** [October 8, 2014, 3:23pm UTC](https://discuss.emberjs.com/t/what-is-the-best-practice-for-extending-a-component/6453 "2014-10-08T15:23:33Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![abousamra](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/abousamra/32/9631_2.png) [@abousamra](https://discuss.emberjs.com/u/abousamra)\
**Post date:** [October 8, 2014, 3:23pm UTC](https://discuss.emberjs.com/t/what-is-the-best-practice-for-extending-a-component/6453/1 "2014-10-08T15:23:33Z")

</div>

I have been searching for how to extend and customize existing ember component but could not find something useful.

I found this [http://emberjs.jsbin.com/vicojere/4/edit](http://emberjs.jsbin.com/vicojere/4/edit) but it seems not good solution and it uses templateName inside component which is deprecated.

Any recommendations ?

---

<div class="post-metadata">

**Author:** ![prabhash](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/prabhash/32/15831_2.png) [@prabhash](https://discuss.emberjs.com/u/prabhash)\
**Post date:** [October 8, 2014, 5:18pm UTC](https://discuss.emberjs.com/t/what-is-the-best-practice-for-extending-a-component/6453/2 "2014-10-08T17:18:56Z")

</div>

You can pretty much do like this:

```
App.TextAreaComponent = Ember.TextArea.extend

```

and hook on to various events that ember provides like so

```
initializeDropDown: ( ->
   
  ).on('didInsertElement')

```

---

<div class="post-metadata">

**Author:** ![abousamra](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/abousamra/32/9631_2.png) [@abousamra](https://discuss.emberjs.com/u/abousamra)\
**Post date:** [October 10, 2014, 9:24am UTC](https://discuss.emberjs.com/t/what-is-the-best-practice-for-extending-a-component/6453/3 "2014-10-10T09:24:30Z")

</div>

I need to extend a custom component not existing one. exactly like the example i have provided.
