首页 > 其他分享 >vue3跨越

vue3跨越

时间:2023-07-28 16:14:06浏览次数:44  
标签:script 跨越 callback setting key vue3 document data

在vue3项目中使用跨域

1.服务器代理

server: {
    port: 8080, // 设置服务启动端口号
    open: true, // 设置服务启动时是否自动打开浏览器
    cors: true, // 允许跨域
    // 设置代理,根据我们项目实际情况配置
    proxy: {
      '/api': { //apiTest是自行设置的请求前缀,按照这个来匹配请求,有这个字段的请求,就会进到代理来
        target: 'https://xxxxxx/', // 需要代理的域名
        changeOrigin: true, // 是否跨域
        rewrite: (path) => path.replace('/api', '') //重写匹配的字段,如果不需要放在请求路径上,可以重写为""
      },
      '/img': {
        target: 'https://xxxxxx/',
        changeOrigin: true, //用于控制请求头中的host值
        rewrite: (path) => path.replace('/img', '')
      },
    }
  },

2.jsonp

const initScript = (setting) => {
    // var frame = document.createElement("script");
    // frame.src = "http://127.0.0.1:3333/api/list?callback=callbacklocation";
    // document.body.append(frame);
    setting.data = setting.data || {};
    setting.key = setting.key || "callback";
    setting.callback = setting.callback || function () { };
    setting.data[setting.key] = "callbacklocation";
    window.callbacklocation = function (data) {
        setting.callback(data);
    };

    var script = document.createElement("script");
    var query = [];
    for (var key in setting.data) {
        query.push(key + "=" + encodeURIComponent(setting.data[key]));
    }
    script.src = setting.url + "?" + query.join("&");
    document.head.appendChild(script);
    document.head.removeChild(script);
};

//使用方法
initScript({
    url: 'https://xxxxxx',
    key: 'callback',
    callback: function (res) {
        console.log(res)
    }
});

 

标签:script,跨越,callback,setting,key,vue3,document,data
From: https://www.cnblogs.com/cjw0217/p/17587894.html

相关文章

  • Vue2 & Vue3生命周期对比
    Vue2生命周期图示  Vue3生命周期图示  二者对比 ......
  • vue-cli构建Vue3项目
    1、node环境检查node-v//查询Node版本 2、vue-cli版本检查vue-V//查询vue-cli版本npmuninstall-gvue-cli//卸载旧版vue-clinpminstall-gvue-cli//旧版vue-cli2npminstall-g@vue-cli//vue-cli3  其他命令:vue-V//查询vue-cli脚手架版本np......
  • Vue3多条数据复制功能,复制内容用逗号拼接
    <divclass="person-list"><divclass="person-item">9939939939399399</div><divclass="person-item">1111111111111111</div></div>&......
  • Vue3的响应式数据处理方式
    问题:data[0].tableId是undefined,但控制台可以打印出data[0]的值原因: Vue3的响应式数据处理方式导致的。Vue3使用了Proxy来实现响应式数据。当你访问一个响应式对象的属性时,Vue会在底层进行拦截,并返回响应式的值。这意味着,当你访问`data[0].TableId`时,Vue会返回......
  • vue3实现图片滚动播放
    <template> <divclass="swiperBox">  <divid="swiper">   <divclass="imgBox"@mouseenter="mouseenter"@mouseleave="mouseleave">    <av-for="(x,i)inLinkList&......
  • vue2和vue3的区别
    1.性能提升vue3对性能进行了优化,相较于vue2,在运行时的性能更高。vue3采用了Proxy代理机制,使得在数据变化时可以更快的更新视图,从而提供了更好的响应性能。2.ComposiitonAPI(组合式API)vue3引入了CompsitionAPI,这是一种新的API风格,它允许开发者更好的组织和重用代码。相比于......
  • vue3状态管理工具Pinia的使用
    1.安装  npminstallpinia--save 2.src文件夹下新建store文件夹,并新建index.tsimport{createPinia}from'pinia'constpinia=createPinia()exportdefaultpinia2.在main.ts中引入piniaimportpiniafrom'./store'import{createApp}from'vue'......
  • vue3中的watch与vue2中的watch的对比
    新版的 watch 和旧版对比,在使用方式上变化非常大!旧版是这样用的,和 data 、 methods 都在同级配置://旧版的写法:exportdefault{watch:{//...},data(){return{//...}},methods:{//...}} 新版的 watch......
  • Vue3 组件篇
    组件命名组件的命名一般分为两种在单文件组件中,推荐为子组件使用PascalCase的标签名,以此来和原生的HTML元素作区分。虽然原生HTML标签名是不区分大小写的,但Vue单文件组件是可以在编译中区分大小写的。我们也可以使用/>来关闭一个标签。使用kebab-case形式并显式地......
  • vue3之element-plus
    1.安装elementPlus和自动导入插件npmielementPlusnpminstall-Dunplugin-vue-componentsunplugin-auto-import2、配置自动按需导入//引入插件importAutoImportfrom'unplugin-auto-import/vite'importComponentsfrom'unplugin-vue-components/vite'import{......