setenv vs set -x vs export · Issue #2704 · fish-shell/fish-shell

Is there a difference between these, and is there a preferred way to set env variables?