Right, since posting this question, I've tried to create a prototype function nl2br based on php.js' rendition:
bootstrap.js
window.Vue.prototype.nl2br = function (body) {
return (body + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + '<br />' + '$2');
}
reply.vue
data() {
return {
editing: false,
body: this.nl2br(this.data.body),
id: this.data.id
}
},
Now, this kinda works. I mean, I now see that I do have new lines. The only issue is, it's now sent as literal output to the browser...
23:19<br /> <br /> Still wondering about new lines though...<br /> <br /> This should be on one!<br /> <br /> /edit: but it isn't.
And the Vue-reply data.body looks like this:
body:"23:19<br />\n<br />\nStill wondering about new lines though...<br />\n<br />\nThis should be on one!<br />\n<br />\n/edit: but it isn't."
So now I have a body with HTML-linebreaks, but they're not parsed as HTML so they don't break.
Any ideas?