一、 vueiframe跨域
在项目中,有时会需要引入外部的无关联组件或页面,此时可以通过iframe来实现。但是vue中的iframe涉及到跨域问题,如何解决呢?
一般来说,如果父页面和子页面不同源,则会出现跨域问题。所以我们可以在后台设置响应头中的Access-Control-Allow-Origin,将源地址设置为’*’,即可允许所有外域请求。
后台代码示例(node.js):
“`
app.use(function (req, res, next) {
res.header(“Access-Control-Allow-Origin”, “*”);
res.header(“Access-Control-Allow-Headers”, “Content-Type”);
res.header(“Access-Control-Allow-Methods”, “PUT,POST,GET,DELETE,OPTIONS”);
next();
});
“`
二、vueiframe只需载一次
每次切换路由或者重新加载页面时,vue会重新创建组件和iframe,这会造成很大的性能浪费。如何避免重复载入呢?
我们可以通过keep-alive来缓存组件,避免重新渲染。同时,设置一个变量checked来标记iframe是否已经载入,如果已经载入则不需要重新载入。
代码示例:
<template> <keep-alive> <div> <iframe id="my-iframe" v-if="!checked" :src="url" @load="frameOnload"> </iframe> </div> </keep-alive> </template> <script> export default { data: () => ({ checked: false, }), methods: { frameOnload() { this.checked = true } } } </script>
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/282788.html