You can substitute almond, unsalted cashews for the hazelnuts. Balsamic vinegar or red wine vinegar. The nuts can be toasted up to 1 day in advance; store at room temperature in an airtight container.
Place the onions in a medium bowl and cover with cold water. Let stand for 30 minutes. This crisps the onion and takes away the raw onion taste. Drain well and pat dry on paper towels.
To make the dressing, in a small jar with a tight-fitting lid, combine the olive oil, vinegar, mustard, sugar, salt, and pepper to taste. Cover tightly and shake vigorously to blend.
The onions and cranberries can be prepared up to up to 4 hours in advance. Set aside at room temperature.
In a small bowl, toss the cranberries with 2 tablespoons of the dressing to soften them. Set aside for at least 20 minutes or until ready to serve the salad.
To assemble the salad, place the spinach, onions, and pears in a large bowl. Give the remaining dressing a last-minute shake and pour over the salad.
Toss to coat evenly. Arrange the salad in a large serving bowl or divide it evenly among 2 salad plates. Scatter the cranberries and nuts over the top(s). Serve immediately.