# 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); } } }; ```