1.传递数据

例如,我们希望把父组件的数据传递给子组件.

可以通过props属性来进行传递.

传递数据三个步骤:

步骤1:在父组件中,调用子组件的组名处,使用属性值的方式往下传递数据

<Menu :mynum="num" title="home里面写的数据"/># 上面表示在父组件调用Menu子组件的时候传递了2个数据:如果要传递变量[变量可以各种类型的数据],属性名左边必须加上冒号:,同时,属性名是自定义的,会在子组件中使用。如果要传递普通字符串数据,则不需要加上冒号:

步骤2 :在子组件中接受上面父组件传递的数据,需要在vm组件对象中,使用props属性类接受。

<script>export default {name:"Menu",props:["mynum","title"],data: function(){return {msg:"这是Menu组件里面的菜单",}}}
</script>// 上面 props属性中表示接受了两个数据。

步骤3:在子组件中的template中使用父组件传递过来的数据.

<template><div id="menu"><span>{{msg}},{{title}}</span><div>hello,{{mynum}}</div></div>
</template>

最终效果:

总结:关于这次数据传送的流程,请看下图

注意事项

使用父组件传递数据给子组件时, 注意一下几点:

  1. 传递数据是变量,则需要在属性左边添加冒号.

    传递数据是变量,这种数据称之为"动态数据传递"

    传递数据不是变量,这种数据称之为"静态数据传递"

  2. 父组件中修改了数据,在子组件中会被同步修改,但是,子组件中的数据修改了,是不是影响到父组件中的数据.

    这种情况,在开发时,也被称为"单向数据流"

2.axios数据请求

2.1 axios包的下载与使用

默认情况下,我们的项目中并没有对axios包的支持,所以我们需要下载安装。

在项目根目录中使用 npm安装包

npm install axios

接着在main.js文件中,导入axios并把axios对象 挂载到vue属性中多为一个子对象,这样我们才能在组件中使用。

详见代码:

// 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' // 这里表示从别的目录下导入 单文件组件
import axios from 'axios'; // 从node_modules目录中导入包
Vue.config.productionTip = falseVue.prototype.$axios = axios; // 把对象挂载vue中/* eslint-disable no-new */
new Vue({el: '#app',components: { App },template: '<App/>'
});

View Code

2.2 在组建中使用axios获取数据

<script>export default{。。。methods:{get_data:function(){// 使用axios请求数据this.$axios.get("http://wthrcdn.etouch.cn/weather_mini?city=深圳").then((response)=>{console.log(response);}).catch(error=>{console.log(error);})}}}
</script>

View Code

使用的时候,因为本质上来说,我们还是原来的axios,所以也会收到同源策略的影响。

3.路由(Router)

Router 安装:

npm install --save vue-router

路由:把组件和对应的 uri地址进行一一映射的关系。

3.1 创建路由文件

  路由文件可以直接创建在src目录下,但是如果项目大了, 分成多个不同的大平台或者大的子项目,可以选择分目录保存路由,

1. src/router/index.js        // 前台路由

2. src/router/backend.js   // 后台路由

创建路由

步骤1:在index.js文件中编写初始化路由信息,以及绑定地址和组件的映射关系

import Vue from 'vue'
import Router from 'vue-router'// 导入路由中需要使用的组件
import Home from '@/components/Home'
// import AddNum from '@/components/AddNum'
import HelloWorld from '@/components/HelloWorld'// 让Vue启用Router路由
Vue.use(Router);export default new Router({// 声明项目的路由列表routes:[//路由信息{ path:'/home',  // 用于访问的路径地址name:'Home',    // 在组件视图中,以后生成url地址时使用的别名,一般和组件名保持一致,方便维护component:Home,  // 这不是字符串,是导入的组件对象} ,{ path:'/hello',name:'HelloWorld',component:HelloWorld,}]
})

View Code

步骤2 index.js路由信息要被main.js加载,所以需要在src/main.js中导入路由对象,详情如下

步骤3:在main.js中的Vue对象中注册了路由以后,那么直接在App.vue文件中的html代码里面,显示当前uri路径对应的组件内容.

3.2 站内链接生成:

  实现生成站内连接.可以使用vue-router提供的路由标签也可以使用vue-router提供的this.$router

  通过链接可以切换路由标签里面对应的组件,链接的地址是上面index.js文件中定义的path值,不过链接标签是"router-link",链接地址用'to'来定义:

<router-link to="/">站点首页</router-link>
<router-link to="/num">AddNum</router-link>

链接地址中可以传递参数,格式如下:

// name对应的是路由中定义的一个path对应的name属性<router-link :to='{name:"UpDate",params:{code:item.code}}'>

有时候需要在组件的js中跳转页面,也就是改变路由,改变路由有下面这些方式:

// 当前页面重新加载
this.$router.go('/user');// 跳转到另外一个路由
this.$router.push({path:'/user'});// 获取当前的路由地址
var sPath = this.$route.path;

转载于:https://www.cnblogs.com/Mixtea/p/10518488.html

Vue之单文件组件的数据传递,axios请求数据及路由router相关推荐

  1. 丁鹿学堂:前端进阶学习vue3最新教程之vue的单文件组件深入理解

    在vue3中,template模版中的html代码,并不能直接在网页中执行,而是会在项目运行时,在浏览器中被编译为js 的函数去执行. 问题:在template模版中写html,体验很差,智能提示都不 ...

  2. vue.js单文件组件中非父子组件的传值

    最近在研究vue.js,总体来说还算可以,但是在web开发群里有一些人问在单文件组件开发模式中非父子组件如何传值的问题,今天在这里讲讲,希望对大家有所帮助!  在官网api中的这段讲解很少,也很模糊: ...

  3. Vue.js 单文件组件

    单文件组件 介绍 在很多 Vue 项目中,我们使用 Vue.component 来定义全局组件,紧接着用 new Vue({ el: '#container '}) 在每个页面内指定一个容器元素. 这 ...

  4. html引用单文件组件,vue之单文件组件 纯网页方式引入

    上一节的vue组件开发是把组件内容统一放到了一个js文件里面 里面写上模板字符串(引用组件) 这种方式还需要拼接转义 写法非常丑陋 vue贴心的帮我们封装了单文件组件 可以不用再模板里面拼接字符串 下 ...

  5. Vue之单文件组件和脚手架

    简介 主要介绍单文件组件的定义和编写方法和脚手架相关知识介绍. 单文件组件的定义是一个文件只有一个组件,使用xxx.vue文件,这个文件是vue团队定义的一种文件类型. xxx.vue文件里面可以使用 ...

  6. Vue的单文件组件和非单文件组件

    单文件组件:一个文件中只包含一个组件,后缀为.vue(常用) <template><!-- html部分 --><div><p class="tit ...

  7. vue:单文件组件模板

    注意点:组件定义完如果想要被外界引入,需要使用export default对外暴露,name属性规定组件的名字,一般和文件名一致. 详细介绍请参考  尚硅谷Vue2.0+Vue3.0全套教程丨vuej ...

  8. Vue组件 —— 单文件组件

    追溯vue组件问题 在未讲项目之前,在 这一篇内容当中就讲到了组件引入使用,有内置的组件和动态组件以及封装一个swiper组件,组件也分为全局组件和局部组件,在讲在项目当中去使用组件之前先简单的回顾一 ...

  9. vue单文件props写法_详解Vue 单文件组件的三种写法

    详解Vue 单文件组件的三种写法 JS构造选项写法 export defaul { data, methods, ...} JS class写法 @Component export default c ...

最新文章

  1. 用ASP.NET建立一个在线RSS新闻聚合器(3)
  2. 反思深度思考:预热[准备] 高密度[压力专注] 辨真伪[冷静分析] 反推[灵活] 结构化[全局]
  3. jaydebeapi可以连接_Python安装jpype调用java,安装jaydebeapi通过jdbc连接数据库
  4. Linux学习笔记03
  5. IPSEC的NAT兼容性
  6. RocketMQ初探(五)之RocketMQ4.2.6集群部署(单Master+双Master+2m+2s+async异步复制)
  7. OpenMV常用函数整理
  8. 利用BitLocker和VHD实现共享文件加密
  9. sudo: unable to resolve host iZ2zecsdy8flu603bmdg1bZ
  10. Linux 下自动化脚本安装Jdk、Nginx等软件
  11. 3.Prometheus 监控技术与实践 --- Exporter
  12. 关于Quartz 2D绘图的简单使用
  13. [python]Python概述
  14. 视频和视频帧:H264编码格式整理
  15. 技巧分享篇---如何从GitHub上下载某个项目中单个文件的方法
  16. Android应用瘦身
  17. 数据与城市正义:回龙观居民“身体被掏空”问题如何解决
  18. c语言自我介绍范文,个性的自我介绍范文5篇
  19. ios 凭据验证_苹果内购服务器验证凭证回执Data
  20. 【LaTeX排版】LaTeX论文模版

热门文章

  1. systemtap调试linux内核源码,内核调试工具SystemTap:适合懒人的printk替代品
  2. 风变Python 15数据的读入以及写出以及数据的编码类型
  3. ireport怎么套打_柳州男孩小指被螺母套牢,还有熊娃被卡进这地方!消防员笑抽,网友:日常打“卡”...
  4. BP神经网络模型与学习算法
  5. 使用R的金融统计:收益、随机行走和模拟
  6. 教师国培计算机计划,国培计划,教师个人发展规划.doc
  7. 人脸对齐(十三)--3DDFA
  8. 目标跟踪算法的分类(一)
  9. java spring 数据库_JAVA - SpringBoot项目引用MyBatis操作数据库
  10. train_image_classifier.py:Cannot assign a device for operation CifarNet/conv1/Conv2D: node CifarNet