【Vue3+Express实战-4】Vue加载渲染页面的原理

大家好,我是半夏👴,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注➕ 点赞 👍 加我微信:frontendpicker,一起学习交流前端,成为更优秀的工程师~关注公众号:搞前端的半夏,了解更多前端知识! 点我探索新世界!

我是一个前端,如果你是想一起学习,一起找工作,一起进步的,那你可以加我;咱们交个朋友,一起学习前端技术,咱们一起找工作,一起交流

如果你是不上进,不学习,打广告的,或者整体怨天怨地的,那千万别别别加我,我不想跟你这种人交朋友!

在上一节课程中,我们已经成功的实现了新增课程的接口,有了接口,我们就可以编写页面,调用接口。

我们这里提到页面,但是知道Vue是如何加载页面的嘛?我相信一些工作一两年的前端选手,也并不知道Vue项目是如何实现的。在正式编写页面之前,我们先来了解一下加载的原理,知其所以然!

打开第一节,我们搭建的Vue项目。

目录结构

可能有很多小伙伴,没有写过Vue的项目,我们先来介绍Vue项目模板的目录解构!

  • public:存放index.html文件,最终所有的组件都会加载在这个index.html上。

  • assets:静态资源,例如图片 视频 CSS。

  • components: 存放组件

  • router:存放路由地址

  • view:存放页面代码

  • App: 网页挂载的地方

  • main.js 项目入口

  • vue.config:Vue官方封装的对Webpack的操作

image-20220409100028337

如果你听完还是不理解,没关系,在敲代码的过程中,会慢慢理解的。

main.js-入口

main.js主要做了两件事:

  1. 引入并注册第三方组件
  2. 绑定页面index.html

在上面的的目录介绍中,我们介绍了public中的index.html文件,大家打开这个文件可以看到一个叫做app的div标签。

image-20220409160259814

在main.js中,我们可以看到,mount方法绑定了一个**#app**,这里的**#app**就是上面的div。

createApp(App).use(ElementPlus).use(router).mount('#app')

最终Vue会将所有的组件加载到div#app的里面,这也是我理解的vue叫做单页面应用开发的原因。

image-20220409160455972

路由以及加载组件

好了,现在正式开始了,先启动项目。首页的上方是导航,点击会跳转到对应的页面。这里的跳转是使用Vue-Router控制的。

image-20220409151931618

打开APP.vue文件,这里可以看到有三个标签router-link和router-view,这两个标签就是Vue-Router提供的。

 <router-link to="/">Home</router-link> |
 <router-link to="/about">About</router-link>

  <router-view/>

其中router-link 标签和a标签的作用一致,最终也是会渲染成a标签。这里的to会渲染成href属性

image-20220409152824822

to=“***”,这里的***就是我们说的路由,他是在src\router\index.js定义的。

这里的写法是最基本的写法,path和component是必须的。

  • path你可以理解为在浏览器的显示的路径

image-20220409154926926

  • component指的是要加载的组件。

值得一提的是,这里component的引入方式是懒加载!有兴趣的同学可以去了解了解。

image-20220409154011950

router-view的作用是将要跳转页面加载在router-view里面。

例如下面是我们的home页面的代码:

  <div class="home">
    <img alt="Vue logo" src="../assets/logo.png">
    <HelloWorld msg="Welcome to Your Vue.js App"/>
  </div>

当我们跳转到home的时候,Vue就会将整个代码加载到router-view上

image-20220409153236774

总结

我们来梳理一下:vue/cli 生成的项目是如何加载页面的。

在public目录下有一个index.html文件

在main.js中我们调用mount方法,绑定到index.html中的div#app

通过Vue-Router,我们可以将组件渲染到router-view上

最后会将Vue-Router渲染的组件,加载到div#app中。

  • 33
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 32
    评论
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

YOLO大师

你的打赏,我的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值