一、 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/zh-tw/n/282788.html