五、伊森商城 前端基础-Vue Vue脚手架原理与使用 p27

news2024/9/22 11:34:56

目录

Vue项目结构 

一、使用vue脚手架进行模块化开发

1、main文件

1.1、首先new Vue创建了一个vue实例,这个实例挂载了index.html中的app元素

1.2、使用了路由,这个路由是简写的写法

 1.3、components使用了一个组件叫App

1.4、最终渲染

2、App.vue组件

2.1、首先template就是模板,我们的页面要显示成什么

 2.2、script就是我们vue实例的代码

2.3、style样式

2.4、 App.vue解析

3、router路由  

4、新增路由配置

4.1新建hello.vue组件

 4.2、编写路由

4.3、保存运行再测试

5、动态导航

调用逻辑


Vue项目结构 

- build:存放跟打包工具webpack之类有关的代码

- config:存放配置信息的文件夹(index端口配置)

- node_modules:存放当前项目所有依赖的文件夹(没有的话可以npm install)

- src 编写代码的文件夹

- static 静态文件夹(可以存放图片之类的)

- .babelrc 语法转义的相关配置

- index.html 主入口页面,首页内容

- package.json 便是npm依赖包的配置信息(每安装一个依赖里面都会声明好)

- package-lock.json 每一个依赖的详细信息(包括去哪里下载,版本号之类的)

一、使用vue脚手架进行模块化开发

1、main文件

再src中有一个非常重要的文件,叫main.js,这个就是我们的主程序

1.1、首先new Vue创建了一个vue实例,这个实例挂载了index.html中的app元素

 

1.2、使用了路由,这个路由是简写的写法

 main.js

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
// ./就是同级目录下,router文件夹下的内容
import router from './router'

Vue.config.productionTip = false

/* eslint-disable no-new */
// 首先创建了一个vue实例,这个实例挂载了index.html中的app元素
new Vue({
  el: '#app',
  // 页面的跳转按照这个规则来的,冒号后面的router就是头顶中import router from './router'导入的
  router: router,
  components: { App },
  template: '<App/>'
})

 router.index.js

router文件夹下有一个文件index.js

里面使用export default导出了一个组件,而且是默认导出,导入的时候可以起名

 1.3、components使用了一个组件叫App

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'

// 从同级目录导入App.vue
import App from './App'
// ./就是同级目录下,router文件夹下的内容
import router from './router'

Vue.config.productionTip = false

/* eslint-disable no-new */
// 首先创建了一个vue实例,这个实例挂载了index.html中的app元素
new Vue({
  el: '#app',
  // 页面的跳转按照这个规则来的,冒号后面的router就是头顶中import router from './router'导入的
  router: router,
  // 使用了一个组件叫App,也是上面导入进来的import App from './App'
  // 这里也是简写写法,未简写就是 App: App
  // 属性名跟属性值的变量名一样的时候可以简写
  components: { App },
  template: '<App/>'
})

import App from './App'。// 从同级目录导入App.vue中的App.vue,里面的这个组件叫做单文件组件

1.4、最终渲染

main.js 中使用template指定了一个模板,模板使用了<App/>这个组件。

这个<App/>长什么样。我们最终index.html中的app元素就长什么样。

2、App.vue组件

这个组件分成三个部分<template>、<script>、<style>,这是一个标准的vue单文件组件

官方文档: 

单文件组件 — Vue.js 中文文档 (bootcss.com)

文档中教我们如何创建

2.1、首先template就是模板,我们的页面要显示成什么

 2.2、script就是我们vue实例的代码

里面methods、data什么都能写

 

2.3、style样式

2.4、 App.vue解析

<template>
  <div id="app">
    <!-- 首先引入一个图片 -->
    <img src="./assets/logo.png">

    <!-- 路由视图,整个template这里前端上面显示的是图片,
    下面显示什么,要根据页面的访问路径!是访问路径!来动态决定! -->
    <!-- 单页应用访问路径默认的是url哈希的访问路径,所以是动态试图 -->
    <router-view/>
  </div>
</template>

#号是客户端参数,#号之后的参数就不会传入到服务端,用于网页位置定位 

3、router路由  

我们运行的时候访问了/,/这里该显示什么呢?

 我们已经在main.js写了router: router说明的路由使用规则,上面还引入了import router from './router'

所以我们去到router文件夹下,该文件夹下只有一个文件index.js

打开这个index.js即可看到定义好的路由规则

 我们再去components目录看一下这个HelloWorld组件

缩放以后可以看到也是标准的<template>、<script>、<style>组成的组件

 我们修改一下其中的msg信息,前端就会发生相应的变化

<template>
  <div class="hello">
  <!-- 首先展示了一个msg,这个msg在下面的script中定义好了 -->
    <h1>{{ msg }}</h1>
    <h2>Essential Links</h2>
    <ul>
      <li>
        <a
          href="https://vuejs.org"
          target="_blank"
        >
          Core Docs
        </a>
      </li>
      <li>
        <a
          href="https://forum.vuejs.org"
          target="_blank"
        >
          Forum
        </a>
      </li>
      <li>
        <a
          href="https://chat.vuejs.org"
          target="_blank"
        >
          Community Chat
        </a>
      </li>
      <li>
        <a
          href="https://twitter.com/vuejs"
          target="_blank"
        >
          Twitter
        </a>
      </li>
      <br>
      <li>
        <a
          href="http://vuejs-templates.github.io/webpack/"
          target="_blank"
        >
          Docs for This Template
        </a>
      </li>
    </ul>
    <h2>Ecosystem</h2>
    <ul>
      <li>
        <a
          href="http://router.vuejs.org/"
          target="_blank"
        >
          vue-router
        </a>
      </li>
      <li>
        <a
          href="http://vuex.vuejs.org/"
          target="_blank"
        >
          vuex
        </a>
      </li>
      <li>
        <a
          href="http://vue-loader.vuejs.org/"
          target="_blank"
        >
          vue-loader
        </a>
      </li>
      <li>
        <a
          href="https://github.com/vuejs/awesome-vue"
          target="_blank"
        >
          awesome-vue
        </a>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data () {
    return {
      // 修改一下msg信息,前端的/访问路径下的内容就会发生变化
      msg: 'Welcome to Your Vue.js App是吧张三老弟!'
    }
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
  font-weight: normal;
}
ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
a {
  color: #42b983;
}
</style>

4、新增路由配置

4.1新建hello.vue组件

 组件三要素<template>、<script>、<style>

<template>
    <div>
        <<h1>你好嘛!hello!{{name}}</h1>
    </div>
</template>

<script>
export default {
    // 组件的data要写成函数的形式
    data() {
        return {
            name: "阿伸哥"
        }
    },
}
</script>

<<style>

</style>

 4.2、编写路由

因为main.js的路由都在'./router'下,所以我们去router文件夹下的index.js添加路由信息

import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
// 导入刚刚写好的hello组件
import hello from '@/components/hello'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'HelloWorld',
      component: HelloWorld
    },
    {
      path: '/hello', //访问路径
      name: 'hello',  //名字叫hello
      component: hello //指定一个hello的模板,从上面导入了已经
    }
  ]
})

4.3、保存运行再测试

可以看到,只改变了 <router-view/>路由中的内容,图片并没有改动

5、动态导航

在vue.App中添加

<router-link to="/hello">去hello</router-link>

即可快速访问到hello

<template>
  <div id="app">
    <!-- 首先引入一个图片 -->
    <img src="./assets/logo.png">

    <!-- 动态路由 -->
    <router-link to="/hello">去hello</router-link>
    <router-link to="/">去首页</router-link>

    <!-- 路由视图,整个template这里前端上面显示的是图片,
    下面显示什么,要根据页面的访问路径!是访问路径!来动态决定! -->
    <!-- 单页应用访问路径默认的是url哈希的访问路径,所以是动态试图 -->
    <router-view/>
  </div>
</template>

<script>
export default {
  name: 'App'
}
</script>

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

调用逻辑

1、index.html写了id=app的属性 ==》

2、main.js绑定了id=app的属性 ==》

3、main.js导入router做路由规则,看能访问哪个路径 ==》 

4、main.js导入App.vue做前端的渲染显示画面 ==》

router文件夹下的index.js配置路由,看看能访问什么路径,不同路径不同的渲染效果

components文件夹存放组件,用组件渲染前端

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/69381.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

卷积神经网络相关模型

卷积神经网络相关模型1. CNN架构2. CNN架构模型2.1LeNet模型2.2Alexnet模型2.3VGG16模型2.3.1 使用多层小卷积核代替一层大的卷积核优点2.3.2 使用1*1卷积核优点2.3.2 模型特点卷积神经网络基本概念相关知识连接 卷积神经网络基本概念相关知识连接 1. CNN架构 模型分为2部分【…

ubuntu1804在rviz中显示kitti数据集的2D检测框和激光雷达的3D检测框

之前所做的工作参考上篇博客ubuntu1804发布kitti数据集的gps资料,imu资料(包含发布图片,点云过程)_FYY2LHH的博客-CSDN博客 本次将详解如何在ros播放的kitti数据集上作出检测框,首先需要知道的是对于kitti数据集中的每一帧都必须提前进行标注,而这个工作已经被别人完成了…

42. Python range函数—生成器函数

42. range函数—生成器函数 文章目录42. range函数—生成器函数1. 什么是range( )函数2. 回顾列表切片的语法3. range( )函数的语法3. range函数实操3.1 只有1个参数3.2 有2个参数3.3 有3个参数3.4 步长为负数4. list不能完全替代range5. 总结1. 什么是range( )函数 range[reɪ…

基于遗传算法在机器人路径规划中的应用研究(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

第十七章 优先队列优化Dijkstra算法

第十七章 优先队列优化Dijkstra算法一、普通dijkstra算法的缺陷1、选出最小距离的过程&#xff1a;2、松弛所有点的过程&#xff1a;二、如何优化1、代码模板&#xff08;1&#xff09;问题&#xff1a;&#xff08;2&#xff09;模板&#xff1a;2、详细解读三、优化分析1、使…

5G赋能行业应用,助推数智化转型!

导语 | 5G 技术的蓬勃发展推动其行业应用的巨轮乘风破浪、扬帆启航&#xff0c;5G 技术不断落地布局于各行各业&#xff0c;基础建设也不断完善&#xff0c;5G to B 的时代已经到来。此次&#xff0c;我们邀请到了中国电信研究院工业互联网技术研发部主任、腾讯云 TVP 谭华老师…

知识图谱-KGE-语义匹配-双线性模型(打分函数用到了双线性函数)-2014:TATEC

【paper】 Effective Blending of Two and Three-way Interactions for Modeling Multi-relational Data 【简介】 本文是法国 Antoine Bordes 团队发表在 ECML-PKDD 2014 上的工作&#xff0c;提出了 TATEC&#xff08;Two and Three-way Embeddings Combination&#xff09;…

ERP+MES集成管理系统重要性有哪些?

随着企业信息化观念的提升&#xff0c;管理方式也愈来愈信息化&#xff0c;因此以信息化推动企业的不断发展趋势已变成企业存活和发展的主要核心理念。其中E&#xff32;P 系统和 MES 系统在企业发展和改革中起着非常重要的作用。当各种信息化系统在企业内各个部门顺利执行的同…

RabbitMQ安装教程(超详细)

本教程是在centos8下试验的&#xff0c;其实linux系统的都差不多 RabbitMQ官方&#xff1a;Messaging that just works — RabbitMQ RabbitMQ是开源AMQP实现&#xff0c;服务器端用Erlang语言编写&#xff0c;Python、Ruby、 NET、Java、JMS、c、PHP、action screcrive AMQP …

python 爬虫入门该怎么学习?

前言 1、什么是爬虫和爬虫的基本逻辑 “爬虫”是一种形象的说法。互联网比喻成一张大网&#xff0c;爬虫是一个程序或脚本在这种大网上爬走。碰到虫子&#xff08;资源&#xff09;&#xff0c;若是所需的资源就获取或下载下来。这个资源通常是网页、文件等等。可以通过该资源…

Android NDK 开发之 CMake 必知必会

Android Studio 从 2.2 版本起开始支持 CMake ,可以通过 CMake 和 NDK 将 C/C 代码编译成底层的库&#xff0c;然后再配合 Gradle 的编译将库打包到 APK 中。 这意味就不需要再编写 .mk 文件来编译 so 动态库了。 CMake 是一个跨平台构建系统&#xff0c;在 Android Studio 引…

12月7日 补充数据库链式操作,只生成sql语句,不执行sql的几种函数以及thinkphp中验证器

补充知识&#xff1a; 生成sql语句但是不会执行sql语句 public function fetchSqlTest(){$result Db::name(user)->fetchSql(true)->select();//dump($result);//使用正常select查询默认中select(true&#xff09;改为false即可返回sql语句$result Db::name(user)->…

UNIX/LINUX操作系统内核结构

通用操作系统的现状和分类 UNIX操作系统的根本特点&#xff1a;分时多用户、开放性 基本功能特征 系统结构 操作系统核心 系统调用的集合及实现系统调用的内部算法就形成操作系统核心 系统调用 以函数形式提供给核外的命令和上层应用系统使用的一组程序&#xff0c;涵…

观察者模式

目录 一、观察者模式解决了哪些问题&#xff1a; 二、体检的小栗子 三、什么是观察者模式 四、代码实现 一、观察者模式解决了哪些问题&#xff1a; 对象之间的一对多依赖关系应该在不使对象紧密耦合的情况下定义。应该确保当一个对象改变状态时&#xff0c;自动更新无限数…

5-5:显示系统的通知

通知列表 显示评论、点赞、关注三种类型的通知。 通知详情 分页显示某一类主题所包含的通知。 未读消息 在页面头部显示所有的未读消息数量 通知存在message表里面 修改MessageMapper.java package com.nowcoder.community.dao;import com.nowcoder.community.entity.Messa…

毕业2年,跳槽到我们公司拿18K,这就是00后卷王带来的压迫感吗?

内卷&#xff0c;是现在热度非常高的一个词汇&#xff0c;随着热度不断攀升&#xff0c;隐隐到了“万物皆可卷”的程度。 在程序员职场上&#xff0c;什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事&#xff0c;我们可以帮他。 是技术太强的人吗?也不…

AI 也会写代码了,但我并不担心

如果你比较关注人工智能&#xff0c;可能会注意到最近圈子的人都在刷屏一个 AI 玩意&#xff0c;叫 ChatGPT 。我一直关注的和菜头在他的公众号槽边往事上就接连写了几篇文章。为什么和菜头是男的&#xff0c;读者却要叫他“婶婶”怎么把AI逼到生气水文与干货如果看完上面的第一…

一行代码 网页变灰

背景 想必大家都感受到了&#xff0c;很多网站、APP 在昨天都变灰了。 先来感受一下变灰后的效果。 让网页变为黑白配色&#xff0c;是个常见的诉求。而且往往是突如其来的诉求&#xff0c;是无法预知的。 当发生这样的需求时&#xff0c;我们需要迅速完成变更发布。 这种…

机器学习 决策树 随机森林

文章目录参考决策树指标基尼系数基础公式公式理解引入划分后的公式划分后公式的理解信息熵、信息增益如何理解信息熵两种指标的对比总结参考 b站视频 【决策树、随机森林】附源码&#xff01;&#xff01;超级简单&#xff0c;同济大佬手把手带你学决策树决策树模型及案例&…

收藏 外贸企业必备的跨境电商B2B出口报关完整指南

跨境企业想要将货物出口到国外&#xff0c;报关是重要步骤之一&#xff0c;它是货物合法进出国境的通行证。许多初入跨境电商行业的B2B企业在报关上由于无人指引走了许多弯路&#xff0c;浪费了时间。 一.跨境出口模式 根据海关总署规定&#xff0c;跨境电商出口的监管模式分为…