You're getting the warning because you're changing the value of data.body within sortBy. This data change will cause the render function to run again. The reason you're not getting an infinite loop is that on the second call to sortBy the data is already sorted which results in no data change to data.body.
If you ever want to create an infinite scroll with Vue for your WordPress projects, here is a working example. The process can be a bit tedious but it will be quick and smooth once you have the template set up.
I have been using Vue since version 4 (around 2004 I think) and currently use Vue 2016 infinite which is currently the latest version with a new version scheduled for early 2018. Most of the images in my gallery (see signature) are done in Vue even though the latest ones are most DAZ studio Iraq. I usually export form DS as .obj and then import into Vue and set up my material there. I have a tutorial floating around about the export/import work flow I use. If you are interested I can dig it up.
Consider a web page that uses infinite scrolling. It uses a vendor-provided library to manage the advertisements placed periodically throughout the page, has animated graphics here and there, and uses a custom library that draws notification boxes and the like. Each of these has its own intersection detection routines, all running on the main thread. The author of the web site may not even realize this is happening, since they may know very little about the inner workings of the two libraries they are using. As the user scrolls the page, these intersection detection routines are firing constantly during the scroll handling code, resulting in an experience that leaves the user frustrated with the browser, the web site, and their computer.
Rather than reporting every infinitesimal change in how much a target element is visible, the Intersection Observer API uses thresholds. When you create an observer, you can provide one or more numeric values representing percentages of the target element which are visible. Then, the API only reports changes to visibility which cross these thresholds. 2b1af7f3a8