fix: fix watch & set, use set to re-render part of the template