A review on metasurface from principle to smart metadevices