声明式路由和编程式路由指的是路由跳转的方式,即声明式路由表示在结构(HTML)中跳转路由,而编程式路由表示在逻辑(JS)中跳转路由,这两种方式都是可以携带params和query参数的。
Vue中:
Vue声明式,不携带数据: <router-link to="/index">首页</router-link>
Vue声明式,携带params数据: <router-link to="/detail/123">详情页</router-link>
Vue声明式,携带query数据: <router-link to="/list?city=65">列表页</router-link>
Vue编程式,不携带数据:<script> router.push('/index') </script>
Vue编程式,携带params数据:<script> router.push('/detail/123') </script>
Vue编程式,携带query数据:<script> router.push('/list?city=65') </script>
注:在Vue中也可以采用 query 和 params 这个属性传递数据
举例:
声明:<router-link :to="{path: '/xxx', query: { xxx }, params: { xxx }}">xxx</router-link>
编程:router.push({ path: '/xxx', query: { xxx }, params: { xxx } })
React中:
React声明式,不携带数据: <Link to="/index">首页</Link>
React声明式,携带params数据: <Link to="/detail/123">详情页</Link>
React声明式,携带query数据: <Link to="/list?city=65">列表页</Link>
React编程式,不携带数据:<script> const navigate = useNavigate(); navigate('/index') </script>
React编程式,携带params数据:<script> const navigate = useNavigate(); navigate('/detail/123') </script>
React编程式,携带query数据:<script> const navigate = useNavigate(); navigate('/list?city=65') </script>