作者:望舒灬寒 | 来源:互联网 | 2023-12-14 19:14
router -link>:该标签是一个vue-router已经内置的组件,它会被渲染成一个标签
该标签会根据当前的路径,动态渲染出不同的组件
将路由器改为history模式, mode:'history'
=>a标签
渲染成任何属性
repalce :replace 不会留下history记录。所以指定repalce的情况下,后退键返回不能返回到上一个页面中。
this.$router.push('/home')
路由懒加载
const Home =()=>import('../components/Home.vue')
path:' /home/:id'
{{this.$route.params.id}}
url :协议://主机:端口/路径?查询(query)
传递参数主要有两种类型:params 和query
params的类型
配置路由格式:/router/:id
传递的方式:在path后面跟上对应的值
传递后形成的路径:/router/123,/router/abc
query的类型:
配置路由格式:/router,也就是普通配置
传递的方式:对象中使用query的key 作为传递方式
传递后形成的路径:/router?id=123,/router?id=abc
导航守卫的使用?
router.beforeEach(to,from,next)=》
{window.document.title = to.meta.title
}
keep-alive 是Vue内置的一个组件,可以使被包含的组件保留状态,
他有两个非常重要的属性
include:字符串式正则表达,只有匹配的组件会被缓存
exclude:任何匹配的组件都不会被缓存
box- shadow的使用
ue-router 路由重复点击 报错
2021.03.25 18:18:38字数 159阅读 1,290
报错如图
报错:
vue-router.esm.js?8c4f:2065 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: "/home".
通过$router.push()的方式跳转路由时,路由重复点击会报错,虽然不影响功能使用,但是总会有些不合适,强迫症很难受。
解决办法:
有两种解决办法:
1.在router的配置文件index.js中,加入如下代码:
//router/index.jsimport Router from "vue-router"const originalPush = Router.prototype.push
Router.prototype.push = function push(location) {return originalPush.call(this, location).catch(err => err)
}
2.在调用$router.push()时,后边接一个catch:
this.$router.push({}).catch(err => {})
除了push以外,replace也可以使用类似方式,这里就不列举了。
如果觉得有用就帮忙点个赞吧!
ue-router 路由重复点击 报错
报错如图
报错:
vue-router.esm.js?8c4f:2065 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: "/home".
通过$router.push()的方式跳转路由时,路由重复点击会报错,虽然不影响功能使用,但是总会有些不合适,强迫症很难受。
解决办法:
有两种解决办法:
1.在router的配置文件index.js中,加入如下代码:
//router/index.jsimport Router from "vue-router"const originalPush = Router.prototype.push
Router.prototype.push = function push(location) {return originalPush.call(this, location).catch(err => err)
}
2.在调用$router.push()时,后边接一个catch:
this.$router.push({}).catch(err => {})
除了push以外,replace也可以使用类似方式,这里就不列举了。
/* x偏移量 | y偏移量 | 阴影颜色 */
box-shadow: 60px -16px teal;/* x偏移量 | y偏移量 | 阴影模糊半径 | 阴影颜色 */
box-shadow: 10px 5px 5px black;/* x偏移量 | y偏移量 | 阴影模糊半径 | 阴影扩散半径 | 阴影颜色 */
box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2);/* 插页(阴影向内) | x偏移量 | y偏移量 | 阴影颜色 */
box-shadow: inset 5em 1em gold;/* 任意数量的阴影,以逗号分隔 */
box-shadow: 3px 3px red, -1em 0 0.4em olive;/* 全局关键字 */
box-shadow: inherit;
box-shadow: initial;
box-shadow: unset;
new promise((resolve,reject) => {setTimeout(()=>{resolve()},1000)
}).then((
)=>{console.log("hello world");
})
一般情况下是有异步操作时,使用promise 对这个异步操作进行封装
new promise((resolve,reject) => {setTimeout(()=>{resolve("hello world")reject('error message')},1000)
}).then(data=>{},error => {})
//resolve, reject 接受成功或失败