Vue与Axios的传参方式实例详解

目录
  • Vue的传参方式:
    • 1.通过name来传递参数
    • 2.通过路径的方式进行传参,需要在在路由配置中占位
      • 2.1、通过v-bind:to的方式进行传参采取params:{key:value}(路径传参)
      • 2.2、直接将参数写在路径上进行传参
    • 3.通过v-bind:to的方式进行传参采取query:{key:value}(问号传参)
    • 4.编程式导航,这是最常用的方式
  • axios传递参数
    • 1.GET传参
      • 1.1.通过?传参
      • 1.2.通过URL传参
      • 1.3.通过参数传参
    • 2.DELETE传参同GET
    • 3.POST传参
      • 3.1.默认传递参数(传递的是json)
      • 3.2.通过URLSearchParams传递参数(传递的是FormData)
      • 3.3.通过qs库传递参数(传递的是FormData)
    • 4.PUT传参
      • 4.1.默认传递参数
  • 总结

Vue的传参方式:

1.通过name来传递参数

在router下的index.js

{
	path: '/hello',
	name: 'HelloWorld',
	component:HelloWorld,
},

在外部的对应的.vue中可以获取值

<h2>{{$route.name}}</h2>

2.通过路径的方式进行传参,需要在在路由配置中占位

2.1、通过v-bind:to的方式进行传参采取params:{key:value}(路径传参)

传值:

<!--用了params是不允许写path的,乌龟的屁股!-->
<router-link :to="{name:'hi',params:{id:33}}">by ':to' way transfer parameters</router-link>

占位:

{
	name: 'hi',
	path: '/hello/:id',
	component:HelloWorld,
},

接收值:

<h2>{{$route.params.id}}</h2>

2.2、直接将参数写在路径上进行传参

传值:

<router-link to="/java/1/天下第一">by 'url' way transfer parameters</router-link>
<router-link :to="`/java/${user.id}/${user.des}`">by 'url' way transfer parameters</router-link>

占位:

{
	path:'/java/:id/:des',
	name:'java',
	component:Java
}

接收值:

<h2>{{$route.params.id}}</h2>
<h2>{{$route.params.des}}</h2>

3.通过v-bind:to的方式进行传参采取query:{key:value}(问号传参)

传值:

<router-link :to="/to/hi?id=33">by ':to' way transfer parameters</router-link>
<router-link :to="`/to/hi?id=${user.id}`">by ':to' way transfer parameters</router-link>
<router-link :to="{path:'/to/hi',query:{id:33}}">by ':to' way transfer parameters</router-link>
<router-link :to="{name:'hi',query:{id:33}}">by ':to' way transfer parameters</router-link>

占位:问号传参不需要路由占位。

接收值:

<h2>{{$route.query.id}}</h2>

4.编程式导航,这是最常用的方式

传值:

<button @click="lol()">by 'programming' way transfer parameters</button>
<script>
methods:{
          lol:function () {
            //'programming' way A common way
            //注意:这里是router!!!不是route
            this.$router.push({name:'hi',params:{id:33}}})
            // 带查询参数,变成 /courseSearch?plan=this.state4
            this.$router.push({ name: 'hello',query:{keyword:this.state4}})
			this.$router.push({ path: '/courseSearch',query:{keyword:this.state4}})
          }
      }
</script>

占位:

{
	name: 'hi',
	path: '/hello/:id',
	component:HelloWorld,
},
{
	name: 'hello',
	path: '/hello2',
	component:HelloWorld2,
},

取值:

<h1>{{$route.params.id}}</h1>
this.keyword= this.$route.query.keyword

axios传递参数

1.GET传参

1.1.通过?传参

axios.get('/toData?id=1')
.then(res=>{
	console.log(res.data)
})

1.2.通过URL传参

axios.get('/toData/1')
.then(res=>{
	console.log(res.data)
})

1.3.通过参数传参

axios.get('/toData',{params:{id:1}})
.then(res=>{
	console.log(res.data)
})

axios({
	url:'/toData'
	type:'get'
	params:{id:1}
}).then(function (res) {
    console.log(res.data);
 })
//直接接收或者拿map接收
public Result test(Integer id) {}
public Result test(@RequestParam Map<String, Object> map) {}

2.DELETE传参同GET

3.POST传参

3.1.默认传递参数(传递的是json)

axios.post('/toData',{
	uername:'sungan',
	password:'P@ssw0rd'
})
.then(res=>{
	console.log(res.data)
})

3.2.通过URLSearchParams传递参数(传递的是FormData)

以表单的形式传递参数,需要修改{headers:{‘Content-Type’:‘application/x-www-form-urlencoded’}}配置。

let myParams = new URLSearchParams()
myParams.append('jobNumber', '430525')
myParams.append(' password': '123')

axios.post(url,myParams, {headers: {'Content-Type':'application/x-www-form-urlencoded'}});

3.3.通过qs库传递参数(传递的是FormData)

以表单的形式传递参数,需要修改{headers:{‘Content-Type’:‘application/x-www-form-urlencoded’}}配置。

//npm install qs / cnpm install qs (安装了淘宝镜像的才可以使用)
//qs.parse()是将URL解析成对象的形式
//qs.stringify()是将对象 序列化成URL的形式,以&进行拼接
import qs from 'qs';
axios.post(url,qs.stringify({jobNumber: '430525', password: '123'}),
    {headers: {'Content-Type':'application/x-www-form-urlencoded'}}
);

4.PUT传参

4.1.默认传递参数

axios.post('/toData/1',{
	uername:'sungan',
	password:'P@ssw0rd'
})
.then(res=>{
	console.log(res.data)
})

请求头和请求体中都携带值.

总结

到此这篇关于Vue与Axios传参的文章就介绍到这了,更多相关Vue与Axios传参内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • vue axios中的get请求方式

    目录 vue axios中的get请求 一.安装 二.使用 常见错误 vue axios post请求参数错误400 vue axios中的get请求 一.安装 使用 npm:npm install axios 二.使用 步骤:1.引入 2.发送请求 <template>   <div>     <!-- 2.点击发送请求 -->     <button @click="getdata">get请求-无参数</button    

  • Vue中axios的基本用法详解

    目录 1.什么是axios? 2.axios的特征 3.axios在使用的时候需要注意的细节 4.axios在vue中的实例运用(留言评论接口) App.vue代码 mian.js代码 1.什么是axios? axios 是一个基于promise用于浏览器和 nodejs 的 HTTP 客户端.简单的理解就是ajax的封装 2.axios的特征 从浏览器中创建 XMLHttpRequest    从 node.js 发出 http 请求    支持 Promise API    拦截请求和响应 

  • Vue浅析axios二次封装与节流及防抖的实现

    目录 什么是axios axios请求图例 axios的二次封装 为什么要进行二次封装 防抖与节流 什么是axios Axios,是一个基于 promise 的网络请求库,作用于node.js和浏览器中,它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中). 使用方式如下: <script> //调用axios方法得到的返回值是 promise 对象 axios({ //请求方式 method: 'get', // 请求地址 url: 'http://www.liu

  • Vue axios和vue-axios的关系及使用区别

    目录 axios和vue-axios的关系/区别 axios和vue-axios的使用方式区别 1.axios使用方式 2.vue-axios使用方式 axios和vue-axios的使用哪一种较好 vue-axios-plugin插件的使用 axios和vue-axios的关系/区别 1.axios是基于promise的HTTP库,可以使用在浏览器和node.js中,它不是vue的第三方插件2.axios使用的时候不能像vue的插件(如:Vue-Router.VueX等)通过Vue.use()

  • vue开发中关于axios的封装过程

    目录 关于axios的封装 vue中axios全局封装 axios封装 api的统一管理 关于axios的封装 下面代码参考了 vue-element-admin 中的封装方式,request.js 文件如下,封装一个 axios 实例: import axios from 'axios' import { BASE_URL } from './http' import router from '../router'   // create an axios instance const ser

  • Vue axios库发送请求的示例介绍

    目录 1.什么是axios 2.axios请求图例 3.使用 async 和 await 配合 axios 发起请求 4.使用解构赋值 5.使用 axios.get() axios.post() 来简化请求过程 1.什么是axios Axios,是一个基于 promise 的网络请求库,作用于node.js和浏览器中,它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中). 使用方式如下: <script> //调用axios方法得到的返回值是 promise 对象

  • 关于vue3.0使用axios报错问题

    vue-cli3.0使用axios的时候出现错误,记录一下 报错信息: Uncaught TypeError: Cannot set property $axios of #<Vue> which has only a getterat eval (main.js?56d7:12)at Module../src/main.js (app.js:11102)at __webpack_require__ (app.js:724)at fn (app.js:101)at Object.0 (app.

  • vue使用axios导出后台返回的文件流为excel表格详解

    目录 使用axios导出后台返回的文件流为excel vue axios导出excel乱码解决 使用axios导出后台返回的文件流为excel 之前有一个需求是要使用post请求,导出后台返回的文件流并在表格中使用,大概思路为使用axios请求回数据,定义数据为blob格式,再创建一个a标签自调就可以完成了 <button @click="download">导出</button> data() {     return {       isClick: tru

  • vue使用axios接收流文件的实现

    在工作中遇到使用axios接收流文件,遇到了一些问题,整理如下: 在调用接口成功后如图所示: 现在需要调试下axios.js文件统一拦截 // 导出 const headers = response.headers //console.log(headers['content-type']) 将打印的值,也将后台返回的相应头设置成相同的,我的就是'application/octet-stream;charset=UTF-8',然后返回response if (headers['content-t

  • Vue与Axios的传参方式实例详解

    目录 Vue的传参方式: 1.通过name来传递参数 2.通过路径的方式进行传参,需要在在路由配置中占位 2.1.通过v-bind:to的方式进行传参采取params:{key:value}(路径传参) 2.2.直接将参数写在路径上进行传参 3.通过v-bind:to的方式进行传参采取query:{key:value}(问号传参) 4.编程式导航,这是最常用的方式 axios传递参数 1.GET传参 1.1.通过?传参 1.2.通过URL传参 1.3.通过参数传参 2.DELETE传参同GET

  • AngularJS 中ui-view传参的实例详解

    Angular路由传参 首页 <!DOCTYPE html> <html ng-app="app"> <head> <title>路由传参</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" c

  • Vue弹窗的两种实现方式实例详解

    目录 方法一 使用.sync修饰符 方法二 使用v-model 方法一 使用.sync修饰符 element就是使用的这种方式,实现方式如下: 父组件: <template> <div id="demo"> <test-model :show.sync="showFlag"></test-model> </div> </template> <script> import testMo

  • web前端vue之vuex单独一文件使用方式实例详解

    Vuex 是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试.状态快照导入导出等高级调试功能. 上次我用了一个加减的例子为大家讲解vuex的基本的使用方式,和在什么样的情况下使用.上次还是在一个组件内把这个例子简单的展示了下,这次我把vuex抽离出来一个

  • 对vue下点击事件传参和不传参的区别详解

    如下所示: <div id = 'app'> <p><button @click = 'test_click1'>{{btn_text1}}</button></p> <br> <p><button @click = 'test_click2("123")'>{{btn_text2}}</button></p> </div> <script src=

  • bootstrap paginator分页插件的两种使用方式实例详解

    分页有两种方式: 1. 前台分页:ajax一次请求获取全部数据,适合少量数据(万条数据以下): $.ajax({ type: "GET", url: "",//后台接口地址 dataType: "json", success: function (msg) { var pages = Math.ceil(msg.data / 5);//data是数据总量 var element = $('#id');//对应ul的id element.boots

  • vue-router传递参数的几种方式实例详解

    vue-router传递参数分为两大类 编程式的导航 router.push 声明式的导航 <router-link> 编程式的导航 router.push 编程式导航传递参数有两种类型:字符串.对象. 字符串 字符串的方式是直接将路由地址以字符串的方式来跳转,这种方式很简单但是不能传递参数: this.$router.push("home"); 对象 想要传递参数主要就是以对象的方式来写,分为两种方式:命名路由.查询参数,下面分别说明两种方式的用法和注意事项. 命名路由

  • Vue触发隐藏input file的方法实例详解

    1.使用input透明覆盖法 将input的z-index设置为1以上的数字并覆盖到需点击的内容上,将input的样式opacity设置为0(即为透明度为0),这样通过绑定在input上的change事件触发     ----推荐 <p class="uploadImg"> <input type="file" @change="picUpload($event)" accept="image/*" />

  • python函数传参意义示例详解

    目录 C++这样的语言用多了之后,在Python函数传递参数的时候,经常会遇到一个问题,我要传递一个引用怎么办? 比如我们想要传一个x到函数中做个运算改变x的值: def change(y): y += 1 x = 1 print ("before change:", x) change(x) print ("after change: ", x) 得到的结果是 before change: 1 after change:  1 完全没用~~~这是怎么回事? 我来说

  • FasfDFS整合Java实现文件上传下载功能实例详解

    在上篇文章给大家介绍了FastDFS安装和配置整合Nginx-1.13.3的方法,大家可以点击查看下. 今天使用Java代码实现文件的上传和下载.对此作者提供了Java API支持,下载fastdfs-client-java将源码添加到项目中.或者在Maven项目pom.xml文件中添加依赖 <dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</arti

随机推荐