The 28-year-old from Dubuque, Iowa, had one assist in 39 regular-season appearances for the Winnipeg Jets last year, and added another two points (one goal, one assist) in eight playoff contests.
Vancouver also inked a one-year deal with 36-year-old goalie Jaroslav Halak, who posted a 9-6-5 record with the Boston Bruins last season.
The contract includes US$1.5 million in salary and US$1.5 million in potential performance bonuses.
The Canucks are also bringing back veteran defenceman Luke Schenn on a two-year deal that carries an average annual value of US$850,000.
Schenn, 31, spent the last two seasons with the Stanley Cup-winning Tampa Bay Lightning, and registered four points (two goals, two assists) and 51 penalty minutes in 2020-21.