【Vue】【杂碎】()=>和()=>{}的区别

在 JavaScript 中,箭头函数 => 有两种写法:一种是带 {} 大括号的写法,另一种是不带大括号的写法。

如果箭头函数体内只有一行代码,那么可以省略大括号。这时候箭头函数会自动返回这一行的执行结果。示例代码如下:

const add = (a, b) => a + b;
console.log(add(1, 2)); // 输出 3

上面的代码中,箭头函数 add 的函数体只有一行代码,它返回了 a + b 的计算结果。因此我们可以省略大括号,并且可以直接使用这个箭头函数来计算加法。

但是,如果箭头函数体内有多行代码,那么就必须使用大括号括起来。这时候箭头函数不会自动返回结果,而是需要手动使用 return 语句返回结果。示例代码如下:

const multiply = (a, b) => {
  const result = a * b;
  return result;
};
console.log(multiply(2, 3)); // 输出 6

上面的代码中,箭头函数 multiply 的函数体包含了多行代码,所以我们必须使用大括号并手动返回结果。

需要注意的是,使用大括号的函数体和不使用大括号的函数体之间还有一个重要的区别。具体来说,使用大括号的函数体中的 this 关键字指向的是这个箭头函数本身,而不是定义它的对象。而不使用大括号的函数体中,this 关键字则会继承外层作用域的 this 值。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
首先,你需要在Vue项目中安装vue-router。在安装完成后,你需要在你的Vue项目中创建一个router目录,并且在该目录下创建一个index.js文件,用于定义路由。 在index.js文件中,你需要引入Vuevue-router,然后在Vue中使用vue-router插件。然后,你需要定义每个页面的路由,例如: ```javascript import Vue from 'vue' import VueRouter from 'vue-router' import A from '../components/A.vue' import B from '../components/B.vue' import C from '../components/C.vue' Vue.use(VueRouter) const routes = [ { path: '/a', component: A }, { path: '/b', component: B }, { path: '/c', component: C } ] const router = new VueRouter({ routes }) export default router ``` 在上面的代码中,我们定义了三个组件A、B和C,并将它们分别对应到了不同的路由上。现在,我们需要在Vue实例中使用router,例如: ```javascript import Vue from 'vue' import App from './App.vue' import router from './router' new Vue({ el: '#app', router, render: h => h(App) }) ``` 这样,我们就可以在Vue项目中使用router了。现在,我们需要记录每次路由跳转的记录。为了实现这个功能,我们可以在路由跳转前和路由跳转后分别触发beforeEach和afterEach钩子函数,并在这些函数中记录路由跳转的记录。例如: ```javascript import Vue from 'vue' import VueRouter from 'vue-router' import A from '../components/A.vue' import B from '../components/B.vue' import C from '../components/C.vue' Vue.use(VueRouter) const routes = [ { path: '/a', component: A }, { path: '/b', component: B }, { path: '/c', component: C } ] const router = new VueRouter({ routes }) // 记录路由跳转记录 const routerHistory = [] router.beforeEach((to, from, next) => { routerHistory.push({ from: from.path, to: to.path }) next() }) router.afterEach((to, from) => { routerHistory.push({ from: from.path, to: to.path }) }) export default router ``` 在上面的代码中,我们定义了一个routerHistory数组用于记录路由跳转的记录,并在beforeEach和afterEach钩子函数中分别将from和to的path记录到routerHistory数组中。这样,我们就可以在任何组件中访问routerHistory数组,以查看路由跳转记录。 希望这个简单的实现思路能够帮助你实现你的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烂尾主教

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值