JSFiddle - React, Tailwind, and code Playground

JavaScript

var nums = ['1.1.1',
'10.2.3',
'2.6.7',
'21.10.4',
'3.10.12',
'4.11.5',
'4.1.16',
'6.4.23']

nums.sort(function(a, b) {
    var nums1 = a.split(".");
    var nums2 = b.split(".");
    
    for(var i = 0; i < nums1.length; i++) {
        if(nums2[i]) {
            if(nums1[i] !== nums2[i]) {
               return nums1[i] - nums2[i];   
            }//else continue
        } else {
            return 1;//no second number in b
        }
    }
});

console.log(nums);