欢迎光临散文网 会员登陆 & 注册

千锋教育web前端高频面试题视频教程,kerwin大话前端面试秘籍(附答案)

2023-07-16 17:08 作者:加油搞钱1  | 我要投稿

p14 vue高频面试题-2

Vue如何实现单页面应用?

通常url的组成部分有:协议名、域名、端口号、路径、参数、哈希值,当哈希值改变,页面不会发生跳转,单页面应用就是利用这一点,给window注册onhashchange事件,当哈希值改变时通过location.hash就能获得相应的哈希值,然后就能跳到相应的页面

hash通过监听浏览器的onhashchange()事件变化,查找对应的路由规则

history原理:利用h5的history中新增的两个api pushState()和replaceState()和一个事件的onpopstate监听URL的变化


$router和$route的区别?

$router是用来操作路由的,是VueRouter的实例,可以跳转页面,使用push、replace等跳转方法可以实现页面的跳转,其中push方法是可以跳转并且还可以回退的,replace方法可以跳转但是不能回退,因为replace方法会把跳转前的地址清楚掉,导致回退不了。

$route是用来获取路由信息参数的,它是路由信息的一个对象,里面包含一些基本信息,有name、meta、path、hash、query、params、fullPath、matched等。

两者实现的东西完全不一样的。



Vue中怎么定义自定义过滤器(vue3不支持)?

用filter来定义过滤器,过滤器分为全局和局部过滤器,过滤器就是一个普通的函数,来对数据进行处理,可以传递参数,当有局部和全局两个名称相同的过滤器时,以就近原则进行调用,也就是局部过滤器优先于全局过滤器。

过滤器例子 {{ data | formatTime}}左边过滤的变量,右边为过滤器的名字

全局定义过滤器:

Vue.filter('formatTime',(val, format) => {

     return moment(val).format(format)

   })

局部定义过滤器:

filters: {

formatTime(val, format) {

      return moment(val).format(format)

     }

    }

千锋教育web前端高频面试题视频教程,kerwin大话前端面试秘籍(附答案)的评论 (共 条)

分享到微博请遵守国家法律