vue3在运行时路由可以正常跳转,但是页面空白,刷新页面恢复正常[已解决]

这篇具有很好参考价值的文章主要介绍了vue3在运行时路由可以正常跳转,但是页面空白,刷新页面恢复正常[已解决]。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vue3在运行时路由可以正常跳转,但是页面空白,刷新页面恢复正常,在网上寻找很久说是keepAlive的原因,后来看了看我的代码~

原来的代码:


<template>

  <div class="out-content">
    ...
  </div>

  <div ref="confirmModal">
    ...
  </div>

</template>

改后的代码:


<template>
  <div class="out-content">
    <div ref="confirmModal">
        ...
    </div>
  </div>
</template>

由此可见,根元素一定要由一个div去包裹住!template必须有且只能有一个div在这样才会正常显示~

原理:

这里我们要先看一看template这个标签,这个标签是HTML5出来的新标签,它有三个特性:

隐藏性:该标签不会显示在页面的任何地方,即便里面有多少内容,它永远都是隐藏的状态;

任意性:该标签可以写在页面的任何地方,甚至是head、body、sciprt标签内;

无效性:该标签里的任何HTML内容都是无效的,不会起任何作用;

但是我们可以通过innerHTML来获取到里面的内容。

知道了这个,我们再来看.vue的单文件组件。其实本质上,一个单文件组件会被各种各样的loader处理成为.js文件(因为当你import一个单文件组件并打印出来的时候,是一个vue实例),通过template的任意性我们知道,template包裹的HTML可以写在任何地方,那么对于一个.vue来讲,这个template里面的内容就是会被vue处理为虚拟dom并渲染的内容,导致结果又回到了开始 :既然一个.vue单文件组件是一个vue实例,那么这个实例的入口在哪里?

如果在template下有多个div,那么该如何指定这个vue实例的根入口?

为了让组件能够正常的生成一个vue实例,那么这个div会被自然的处理成程序的入口。

通过这个**‘根节点’,**来递归遍历整个vue‘树’下的所有节点,并处理为vdom,最后再渲染成真正的HTML,插入在正确的位置。

如果你觉得以上的内容不太好理解,那么就看看下面的一段话,我觉得形容的很到位:

Vue 实例其实并不知道哪一个是入口,它应该接管哪一个部分,所以你要给它指定一个唯一的元素作为入口。

每一个入口可以看作是一个 Vue 的类,Vue 要把这个入口进去的所有东西都取出来进行轮循渲染一遍,再把它重新挂载回页面中的 DOM 里面去。

打给比方来说,一个 Vue 实例只拥有一个钥匙,一个钥匙只能开一把锁,但是页面上有很多把锁,如果你不说清楚它是哪把锁的钥匙,Vue 实例就不知道接下来要怎么做了,所以页面顺其自然的就不会进行渲染了~文章来源地址https://www.toymoban.com/news/detail-426946.html

到了这里,关于vue3在运行时路由可以正常跳转,但是页面空白,刷新页面恢复正常[已解决]的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IDEA中运行JSP文件,启动Tomcat运行网页显示404,对编译代码右键运行又可以显示正常页面的解决办法

    这个问题困扰了我许久,一直以为是自己的Tomcat配置出现了问题,但实际上我Tomcat并没有出现问题,在网上看了很多大佬关于这方面问题的博客问题也没有得到解决,直到我对比了两次运行的网页url才发现了自己的问题所在。 这里选择Edit Configurations...进去 切换到Deployment,并

    2024年02月08日
    浏览(38)
  • vue3页面跳转

    vue3的页面跳转有两种方式,第一种是标签内跳转,第二种是编程式路由导航 通常用于点击 查看 按钮,跳转到其他页面

    2024年02月12日
    浏览(32)
  • 【vue3】vue3路由跳转的方式

    如 : 有无this都行 $router.push(\\\'/plantduce\\\') this.$router.push(\\\'/plantduce\\\') vue3 || vue2 路由参考 useRouter 与 useRoute 都可以。

    2024年02月06日
    浏览(29)
  • vue3路由配置及路由跳转传参

    在src目录下创建pages文件夹,里面创建两个vue文件命名为student.vue,person.vue 分别编写两个vue文件 student.vue和person.vue 在src目录下配置router.js文件 在main.js中使用路由 在app.vue中进行路由展示,使用router-link进行路由跳转,to代表跳转到哪个路由 效果如下图所示,点击(到student路由

    2024年01月20日
    浏览(49)
  • vue路由跳转后,刷新指定页面。

            做项目遇到一个坑:A页面带参跳转到B页面,第二次跳转时的参数与第一次时的参数不同,但是后台查询时还是使用的第一次的参数。需要手动刷新之后,才会使用第二次参数。         鉴于时间原因直接使用刷新页面监听路由的方法。在准备跳转的A页面添加路

    2024年02月12日
    浏览(56)
  • vue2路由跳转页面

    前端工作笔记之---页面路由跳转vue2 前言 1.安装vue-router 2.配置路由 在src文件夹下创建router文件夹,然后在router文件夹下创建index.js文件,如下图 在index.js文件夹中进行配置  在src文件夹下创建view文件夹,在里边放路由文件,如下图  在main.js文件中注册路由 接下来就是使用啦

    2024年02月06日
    浏览(27)
  • vue3路由跳转方法

      首先,vue3.0跳转和vue2.0跳转方式差别不大,但是还有需要注意的地方。这里我介绍两种比较常见的路由跳转方法。 1.利用router-link标签来进行跳转。 to 是你要跳转的路径,也就是接口。这个是最简单的。 如果你要传入参数的话,就得绑定属性。 这里判定to,然后采用name来跳

    2024年02月11日
    浏览(34)
  • Vue路由跳转传参或打开新页面跳转

    1. 通过路由中的name属性  使用 params 传递参数, 使用 this.$route.params 获取参数 这种方式传递相当于 post 请求, 传递的数据不会显示在 url 地址栏,但是页面刷新,参数会丢失 1 2 3 4 5 6 7 8 9 // 传递参数 this .$router.push({      name: \\\"首页\\\" ,      params: {          code: 1      } })

    2024年02月07日
    浏览(33)
  • IDEA有些类爆红,但是项目可以正常启动?

    当在IDEA中看到一些类爆红,但项目能够正常启动,这可能是由于以下原因导致的: 1. 缺少依赖或依赖冲突:爆红可能是因为缺少某些依赖或者依赖的版本冲突。确保项目中使用的所有依赖都已正确配置,并且版本兼容。 2. IDE缓存问题:IDEA有时可能会出现缓存问题,导致一些

    2024年02月05日
    浏览(31)
  • 路由跳转和传参(vue3)

    准备工作:安装了路由,配置了路由表,全局注册了路由 ​ vue3路由官方文档 安装路由 npm yarn 路由跳转 首先在需要跳转的页面引入 API---useRouter 在跳转页面定义router变量 用 router.push跳转页面 (导航到不同的位置) 用router.replace(替换当前位置) 用router.go横跨历史 路由传参 一.标

    2024年02月10日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包