# Custom render column header
```html
```
```js
const toolTip = (h, activator, content) => {
const scopedSlots = {
activator: () => activator
};
return (
{content}
);
};
const _columns = $this => {
return [
{
title: "Name",
key: "name",
renderHeader(h, column) {
return toolTip(
h,
{column.title}
,
"custom header: name"
);
}
},
{
title: "Age",
key: "age",
renderHeader(h, column) {
return (
{column.title}
);
}
},
{
title: "Address",
key: "address",
renderHeader(h, column) {
return (
{column.title}
);
}
},
{
title: "Tags",
key: "tags",
render(h, params) {
const arr = params.row.tags.map(tagKey => {
return (
5 ? "warning" : "default"}
>
{tagKey}
);
});
return arr;
}
},
{
title: "Action",
key: "actions",
render(h, params) {
return (
$this.sendMail(params.row)}>
Send mail
);
}
}
];
};
const data = [
{
key: "1",
name: "John Brown",
age: 32,
address: "New York No. 1 Lake Park",
tags: ["nice", "developer"]
},
{
key: "2",
name: "Jim Green",
age: 42,
address: "London No. 1 Lake Park",
tags: ["loser"]
},
{
key: "3",
name: "Joe Black",
age: 32,
address: "Sidney No. 1 Lake Park",
tags: ["cool", "teacher"]
}
];
export default {
data() {
return {
data: data,
columns: _columns(this)
};
},
computed: {
pagination() {
return { total: this.data.length, limit: 10 };
}
},
methods: {
sendMail(rowData) {
this.$NMessage.info("send mail to " + rowData.name);
}
}
};
```