当前位置: 首页 > news >正文

厦门网站建设招标呼和浩特房地产网站建设

厦门网站建设招标,呼和浩特房地产网站建设,怎么查询网站所有关键词,网站建设管理工作小结vue中的ajax 配置代理常用发送Ajax请求方式跨域方式一方式二 vue-resource插槽默认插槽具名插槽作用域插槽 配置代理 常用发送Ajax请求方式 xhr new XMLHttpRequest() 在真正开发中不常用,比较麻烦jQuery 封装了xhraxios 封装了xhr 与jQuery相比优势是&#xff1a…

vue中的ajax

  • 配置代理
    • 常用发送Ajax请求方式
    • 跨域
    • 方式一
    • 方式二
  • vue-resource
  • 插槽
    • 默认插槽
    • 具名插槽
    • 作用域插槽

配置代理

常用发送Ajax请求方式

  • xhr new XMLHttpRequest() 在真正开发中不常用,比较麻烦
  • jQuery 封装了xhr
  • axios 封装了xhr 与jQuery相比优势是:是Promise风格,支持请求拦截器和响应拦截器,体积小(大约为jQuery的1/4) (尤雨溪推荐使用)
  • fetch 原生 也是Promise风格 在IE浏览器兼容性差

下面来实践一下整个数据链路
使用axios发送请求
下载包npm i axios
引入import axios from 'axios'
使用

sendMsg() {axios.get("http://localhost:5000/students").then((response) => {console.log("请求成功了", response.data);},(error) => {console.log("请求失败了", error.message);});
},

使用nodejs写服务器

// serverStudents.js
const express = require("express");
const app = express();
app.use((request, response, next) => {console.log("========================================");console.log("有人请求服务器serverStudents了");console.log("请求的资源是:", request.url);console.log("请求来自于:", request.get("Host"));next();
});app.get("/students", (request, response) => {const students = [{ id: "001", name: "tom", age: 18 },{ id: "001", name: "lisa", age: 18 },{ id: "001", name: "jerry", age: 18 },];response.send(students);
});app.listen(5000, (err) => {if (!err)console.log("服务器成功启动了,请求学生信息地址为:http://localhost:5000/students");
});

启动服务器node serverStudents.js
点击按钮发送请求,看控制台
在这里插入图片描述

跨域

请求数据时报错....CROS....'Access-Control-Allow-Origin'就是因为跨域了
跨域会导致数据返回时浏览器不会将数据进一步发送到页面上
导致跨域是因为违背了同源策略,
同源策略是规定了三个东西必须一致:协议名,主机名,端口号
当前页面地址是http://localhost:8080/ 服务器地址是http://localhost:5000/ 端口号不同

解决方法

  • cors 由后端进行处理 在返回数据时会携带一些特殊的响应头,浏览器识别这些响应头后就会将数据直接给
  • jsonp 借助script标签的src属性在引入外部资源时不收同源策略限制 (一般不用 只能解决get请求的跨域)
  • 代理服务器 (中台)在前端后端中间的一个服务器,与前端同源,而服务器间数据通信不用ajax不需要同源

所以我们就用vue-cli来创建一个代理服务器 文档
有两种方式

方式一

// 在vue.config.js中配置
// 开启代理服务器
devServer: {proxy: "http://localhost:5000",
},

而请求中的地址也要改为代理服务器地址,但要带着请求信息axios.get("http://localhost:8080/students")
在这里插入图片描述

注意
proxy配置中的地址是后台服务器的
请求地址的是代理服务器地址
public目录下的内容会被代理服务器纳为己用,而当我们的请求代理服务器可以自己回答时,就不会再将请求转发给后端(是不是挡板?)
这种方法有两个缺点:无法配置多个代理,会自动拦截请求

方式二

将没用的注释掉

// vue.config.jsdevServer: {proxy: {"/api": {//请求前缀 如果请求的前缀有api则会走此代理,没有则不走此代理target: "http://localhost:5000",// ws: true, //用于支持websocket 默认true// changeOrigin: true, //是否改变请求来源地址为后台同源地址 控制请求头中的Host值 默认true},//   "/foo": {//     target: "<other_url>",//   },},},

请求地址前缀是紧跟端口号,如:http://localhost:8080/api/students
在这里插入图片描述
报错了 为啥呢 看服务器输出
请求是成功的 但是请求资源是/api/students前缀竟然还带着
在这里插入图片描述
需要加个配置,将转发的请求按规则重写

pathRewrite: { "^/api": "" },

在这里插入图片描述

vue-resource

也是一个发送ajax请求的库
是一个对xhr的封装
是一个插件
目前不常使用了,因为不咋维护了
引入

//main.js
// 引入插件
import vueResource from 'vue-resource'
//使用插件
Vue.use(vueResource)

引入之后vm和vc都多了一个$http属性

使用

this.$http.get(...) //和axios的api相同

插槽

让父组件可以向子组件指定位置插入html结构,也是一种组件间通信的方式,适用于父组件===>子组件

默认插槽

// 子组件 Category.vue
<template><div><h1>{{ cateName }}</h1><!-- 定义一个插槽 --><slot>默认值,当使用者没有传递具体结构时,就会展示</slot></div>
</template>
// 父组件 App.vue
<Category :cateName="'美食'">
<imgsrc="https://img-home.csdnimg.cn/images/20201124032511.png"referrerpolicy="no-referrer"alt=""
/>
</Category>
<Category></Category>

在这里插入图片描述

注意!: 插槽内容的样式可以写在子组件里,也可以写在使用者上

具名插槽

就是定义插槽时添加name属性
使用插槽时添加slot属性

<slot name="center">默认值,当使用者没有传递具体结构时,就会展示</slot>
<Category><imgslot="center"src="https://img-home.csdnimg.cn/images/20201124032511.png"referrerpolicy="no-referrer"alt=""/>
</Category>
//或者
// v-slot只能用于template标签上
<Category><template v-slot:center>//....</template>
</Category>

作用域插槽

通过插槽传递数据给插槽使用者

// 将数据传入
<slot name="center" :listData="list">默认值,当使用者没有传递具体结构时,就会展示</slot>

注意: 必须使用template标签

<Category><template scop="listData" slot="center">//....</template>
</Category>
http://www.yayakq.cn/news/21922/

相关文章:

  • 做商城网站带宽做公司门户网站的重点
  • 建一个公司网站要多久不会编程可以做网站吗
  • 长春移动网站建设佛山优化网站排名
  • 二手房网站建设及推广方案vs2012建设空网站
  • it企业网站模板东莞建设网站官网住房和城乡
  • 北京通网站建设价格低建筑企业招聘信息
  • 凡科建站快车登录长沙网站优化
  • 杭州网站建设 乐云践新专家为企业做网站策划案
  • 上海做网站的哪家好api接口开发网站开发
  • 龙岩网站设计找哪家好青岛栈桥门票多少钱
  • 上海网站开发设计培训南宁建站模板大全
  • 网站用html模拟图片建e网全景图
  • 做做网站需要多少钱注册的空间网站
  • 云南网站设计选哪家互联网创业项目
  • 网站建设三秒原则没有公司做网站
  • 网站空间不足wordpress amp
  • 有没有什么设计排版类网站广西知名网站设计
  • 给公司做网站费用丹东seo推广优化报价
  • 设计师导航网站大全网站都有什么类型的
  • 如何进入网站管理页面自己怎么做一个小程序
  • 设置 wap网站宁阳移动网站制作
  • 普通网站要什么费用找个免费的网站这么难吗
  • 4a景区网站建设标准wordpress网站源码分享
  • 聊城建设银行官方网站资阳市网站seo
  • 十大设计创意网站做外贸哪些网站可以发布产品
  • 网站引导页模板海外cdn
  • 网站开发 重庆优质作文网站
  • 企业门户网站建设与发展趋势做印量调查的网站
  • 泊头网站建设价格注册建设网站的公司网站
  • 企业网站源码进一品资源网仅对wordpress自带主题有效