首页 > Web开发 > 详细

vue项目分享html页面(服务器只能内网访问)

时间:2020-05-01 17:27:19      阅读:72      评论:0      收藏:0      [点我收藏+]

需求是分享出去一个链接,打开后是一个页面,页面中的数据都是在前端的,只不过是只显示一部分,根据用户的操作显示相应的数据,比如说拖动滑动条改变年份,显示不同年份的数据

之前是把页面和样式都放在后端,页面中写好处理逻辑,后端只需要往页面中塞数据就行了,前端分享链接出去之后点开就能看,

但是现在服务器只能内网访问,所以就需要把页面放到前端,但数据又只能塞进页面,不能通过接口获取(也不是不能,只是由于项目特点的原因 数据计算过程很复杂而且很耗时)

所以只能让后端把塞好数据的页面代码传过来,前端再渲染

起初我想用v-html指令来处理,然后发现页面中的{{name}}不能解析,看了一下官网,人家特意说明了一下不能编译模板,所以只能想其他办法了

技术分享图片

 

 

 网上所以一圈觉得用v-runtime-template比较靠谱

首先还是需要装一个依赖

npm install v-runtime-template

在vue.config.js文件中加一行代码,不然会报错,当时就是忽略了这一点导致浪费了好长时间

module.exports = {
  runtimeCompiler: true
};

然后就可以把请求接到的前端代码放进模板中了,像这样

 1 <template>
 2     <div>
 3         <v-runtime-template :template="template"></v-runtime-template>
 4     </div>
 5 </template>
 6 
 7 <script>
 8 import VRuntimeTemplate from "v-runtime-template";
 9 import AppMessage from "./AppMessage";
10 
11 export default {
12   data: () => ({
13     name: "Mellow",
14     template: `
15       <app-message>Hello {{ name }}!</app-message>
16     `
17   }),
18   components: {
19     AppMessage,
20     VRuntimeTemplate
21   }
22 };
23 </script>

但是当时还是遇到了点其他问题,console会有报错,原因应该是页面还未渲染完成就加载了相应的methods中的方法,导致undefined

解决办法就是用this.$nextTick( () => { }  ),操作页面数据的方法在箭头函数里面调用应该就没什么问题了

在分享按钮那个页面中分享方法和上一篇的分享pdf一样,都是分享一个链接,点击链接发送请求,获取到数据,再在html页面进行具体操作

var params = { webPageUrl: fontEndUrl + ‘/previewHtml?htmlNo=‘+ htmlNo };

v-runtime-template参考链接:https://github.com/alexjoverm/v-runtime-template

vue项目分享html页面(服务器只能内网访问)

原文:https://www.cnblogs.com/wuyufei/p/12813956.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!