Vue初始化项目加载逻辑

这篇具有很好参考价值的文章主要介绍了Vue初始化项目加载逻辑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Vue初始化项目加载逻辑

项目创建

我们只需要创建项目即可,剩余的依赖都没必要安装

我们先来看main.js,咱们加了一行备注

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

Vue.config.productionTip = false

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app') // 挂载id='app' , 链接到index.html中的app,并使用template引入组件<App>和路由相关的内容。也就是说通过main.js关联到App.vue组件。

通过备注可知,我们首先加载的是App.vue
我们再来看一下App.vue 里都有啥

<template>
  <div id="app">
    <nav>
      <!-- App.vue中其实就是两个链接而已 -->
      <router-link to="/">Home</router-link> |
      <router-link to="/about">About</router-link>
    </nav>
    <!-- Vue 路由中的 <router-view> 是用来承载当前级别下的子级路由的一个视图标签;
    此标签的作用就是显示当前路由级别下一级的页面。
    就比如说App.vue是根组件,在它的<template>标签里使用<router-view>,而且配置好路由的情况下,就能在浏览器上显示子组件的效果;
    子组件要想在页面中显示出来,一定要留好<router-view>容器,不然显示不出来;
    如果这个子组件路由还有孩子路由,那也需要在子组件的<template>标签里使用<router-view>,这样就能在页面上显示子组件的孩子组件的效果;
    注意:一定要使用这个<router-view>,不然页面效果就出不来 -->
    <router-view/>
  </div>
</template>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
}

nav {
  padding: 30px;
}

nav a {
  font-weight: bold;
  color: #2c3e50;
}

nav a.router-link-exact-active {
  color: #42b983;
}
</style>

也就是下面这个红框里的内容才是
Vue初始化项目加载逻辑
那下面的内容是哪里来的呢
那就需要看一下路由设置了

import Vue from 'vue'
import VueRouter from 'vue-router'
import HomeView from '../views/HomeView.vue'

Vue.use(VueRouter)

const routes = [
  {
    path: '/',
    name: 'home',
    component: HomeView
  },
  {
    path: '/about',
    name: 'about',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
  }
]

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

export default router

我们看到/目录i指向了home
再想想之前App.vue中的router-view标签,我是这么理解
App.vue是所有标签的父亲,其他的页面都是在它的基础上渲染出来的,所以router-view标签
是必要的,具体表象就是不管是选中了home还是about标签,这两个标签都在,不会消失的

Vue初始化项目加载逻辑

再回来说这个/目录i指向了home
这个HomeView.vue里有什么呢

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

<script>
// @ is an alias to /src
import HelloWorld from '@/components/HelloWorld.vue'

export default {
  name: 'HomeView',
  components: {
    HelloWorld
  }
}
</script>

里面有这么个标签

<HelloWorld msg="Welcome to Your Vue.js App"/>

那这个HelloWorld 标签对应的是这两段引入进来通过标签的方式使用的

import HelloWorld from '@/components/HelloWorld.vue'

  components: {
    HelloWorld
  }

那我们就来看看这个HelloWorld.vue里有什么
只截取了template和script

<template>
  <div class="hello">
    <h1>{{ msg }}</h1>
    <p>
      For a guide and recipes on how to configure / customize this project,<br>
      check out the
      <a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
    </p>
    <h3>Installed CLI Plugins</h3>
    <ul>
      <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
      <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-router" target="_blank" rel="noopener">router</a></li>
      <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-vuex" target="_blank" rel="noopener">vuex</a></li>
    </ul>
    <h3>Essential Links</h3>
    <ul>
      <li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
      <li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
      <li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
      <li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
      <li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
    </ul>
    <h3>Ecosystem</h3>
    <ul>
      <li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
      <li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
      <li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
      <li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
      <li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
    </ul>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  props: {
    msg: String
  }
}
</script>

其中

<h1>{{ msg }}</h1>

的msg就是HomeView.vue的msg传递过来的

<HelloWorld msg="Welcome to Your Vue.js App"/>

那这个是怎么传递过来的呢,就是script里的props里的msg,这里的msg被同步到了template的{{msg}}上
这个String就是个类型

<script>
export default {
  name: 'HelloWorld',
  props: {
    msg: String
  }
}
</script>

这个msg接收的是,父组件通过标签传过来的msg的值

<template>
  <div class="home">
    <img alt="Vue logo" src="../assets/logo.png">
    <HelloWorld msg="Welcome to Your Vue.js App"/>  <!---就这里的msg,这个才是数据的来源-->
  </div>
</template>

<script>
// @ is an alias to /src
import HelloWorld from '@/components/HelloWorld.vue'

export default {
  name: 'HomeView',
  components: {
    HelloWorld
  }
}
</script>

其实HomeView啥都没干,只是传了一个值给HelloWorld.vue,内容都是HelloWorld.vue的

我们再来看一下AboutView.vue里都有啥吧

<template>
  <div class="about">
    <h1>This is an about page</h1>
  </div>
</template>

很简单,就只是一个标题而已,对应的页面也是这样的

Vue初始化项目加载逻辑文章来源地址https://www.toymoban.com/news/detail-477178.html

到了这里,关于Vue初始化项目加载逻辑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Vue2电商前台项目——项目的初始化及搭建

    Vue基础知识点击此处——Vue.js 使用脚手架创建项目,在需要放置项目的目录下打开cmd输入: 这个name是项目名(我的项目名是potato-mall 创建有问题或者不太熟悉的具体参考之前的脚手架配置笔记 1、脚手架目录介绍 项目创建成功后,点开项目目录,会出现以下文件: 这些文件

    2024年02月09日
    浏览(53)
  • 【vue3项目初始化配置】vue3 + element plus

    项目初始化是开发过程中很重要的一个环节,本篇博客带大家从零开始创建并初始化一个vue3项目,文章详细介绍了每个步骤,希望能帮助刚接触开发的小伙伴。 目录 一.创建项目 二.安装插件  ​编辑 ​编辑三.安装依赖 ​编辑 ​编辑四.配置项目 配置vu.config.js文件  配置

    2024年01月18日
    浏览(71)
  • 【Vue + TS】项目架构、环境搭建 -------(Vite)安装初始化(一)

    前言 “学习能力也好,执行力也罢,核心只有一个:在刚开始的时候,平静地接受自己的笨拙。” 本篇文章是 Vue项目基于 Vite初始化的过程,借此记录一下,巩固基础! 第一章 安装 Vite,本篇基于npm进行(请检测自己的node版本) 具体可看:Vite官方中文文档 全局安装vite,

    2024年02月03日
    浏览(50)
  • 【Vue全家桶】带你全面了解通过Vue CLI初始化Vue项目

    🫡这里是前端程序员小张 🌟创作不易,希望各位大佬支持一下 什么是Vue脚手架? 在真实开发中我们不可能每一个项目从头来完成所有的 webpack配置,这样显示开发的效率会大大的降低; 所以在真实开发中,我们通常会使用脚手架来创建一个项目,Vue的项目我们使用的就是

    2023年04月09日
    浏览(39)
  • 黑马程序员前端 Vue3 小兔鲜电商项目——(一)初始化项目

    Vue3是Vue.js最新的主要版本,它已经于2020年9月18日发布。它提供了许多新功能和性能改进,这些改进使得Vue更易于使用和更具可扩展性。 以下是Vue3的一些主要特性: 更快的渲染:Vue3使用重写的响应式系统,它使用Proxy对象来解决Vue2中的性能瓶颈问题。这使得Vue3的渲染速度比

    2024年02月15日
    浏览(78)
  • 黑马程序员前端 Vue3 小兔鲜电商项目——(二)初始化项目

    Vue3是Vue.js最新的主要版本,它已经于2020年9月18日发布。它提供了许多新功能和性能改进,这些改进使得Vue更易于使用和更具可扩展性。 以下是Vue3的一些主要特性: 更快的渲染:Vue3使用重写的响应式系统,它使用Proxy对象来解决Vue2中的性能瓶颈问题。这使得Vue3的渲染速度比

    2024年02月11日
    浏览(41)
  • 【温故而知新】JavaScript初始化/初始化加载

    在JavaScript中,对象、数组、函数、类等都可以通过不同的方式进行初始化。以下是几种常见的初始化方式: 对象初始化: 使用字面量方式: 使用构造函数方式: 数组初始化: 使用字面量方式: 使用构造函数方式: 函数初始化: 类初始化: 使用Array的of和from方法进行数组

    2024年01月24日
    浏览(71)
  • 【前端Vue】社交信息头条项目完整笔记第1篇:一、项目初始化【附代码文档】

    社交媒体-信息头条项目完整开发笔记完整教程(附代码资料)主要内容讲述:一、项目初始化使用 Vue CLI 创建项目,加入 Git 版本管理,调整初始目录结构,导入图标素材。二、登录注册准备,实现基本登录功能,登录状态提示,表单验证。三、个人中心,四、首页—文章列表TabBar

    2024年03月09日
    浏览(69)
  • vue3+js+viter+element UI+Axios项目初始化基本流程

    1 创建vue3项目 2 创建git代码管理仓库 2.1 创建本地管理仓库 2.2 创建远程仓库 3 初始化项目设置 3.1 安装项目所需要的依赖 3.2 完成别名联想设置 3.2.1 什么叫别名联想呢?(如果了解的话可以跳过这个标题) 3.2.2 设置别名联想 3.2.2.1 打开jsconfig.json文件 3.2.2.2 打开vite.config.js文件

    2024年03月27日
    浏览(65)
  • 手摸手教你Vite+Vue3项目初始化及开源部署到GItee

    本片文章主要记录项目的环境,项目搭建。 在开始本次学习中,鉴于你有前端三件套和vue的知识基础。 文档创建于2023年5月20日,大家都去过情人节了~我在肝代码! 环境的搭建 node版本使用18.16.0。 目前(2023.05.20)的稳定版本,这里推荐使用nvm来管理node的版本。Nvm使用教程

    2024年02月04日
    浏览(56)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包