vue中渲染html网页

12 篇文章 0 订阅

有的时候我们想在vue中直接显示一个html的网页,如果用富文本方式,那么内容就会太多,
我们希望只需填入url链接
那么怎么处理呢?
直接上代码

步骤一:
新建一个vue文件,命名为"HtmlPanel.vue",内容如下,直接ctrl+cv即可!
(为简洁,代码经过缩进,在使用时格式化以下即可,不影响使用)

<template>
  <div> <p v-html="html"></p></div>
</template>
<script>
export default {
props: {url: {required: true }},
  data() {return {html: ""};},
  watch: {url(value) {this.load(value);}},
  mounted() {this.load(this.url);},
  methods: {
    load(url) {
      if (url && url.length > 0) {
        let param = {accept: "text/html, text/plain"};
        this.$http.get(url, param).then(response => { this.html = response.data;}).catch(() => {this.html = "加载失败";});
      }
    }
  }
};
</script>

步骤二
使用上述的vue组件
在你的vue页面中添加如下代码

<template>
    <div>
      <HtmlPanel :url.sync="url1"/>
    </div>
</template>
<script>
import HtmlPanel from "../HtmlPanel.vue"; //根据实际路径导入
export default {
  components:{HtmlPanel},
  data() {
    return {
      url1:"http://www.baidu.com",// 这里填写你需要渲染的url网页
    }
  },
}
</script>

OK!就2个步骤,有帮助的话,麻烦点个赞。

此外
如果遇到跨域,那么请到以下这篇文章

https://blog.csdn.net/u010775335/article/details/110857411

HtmlPanel.vue中使用到的this.$http是什么?怎么引入?
只需安装axios

npm install axios -g

并在main.js中添加如下代码即可

import axios from "axios"
Vue.prototype.$http = axios;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大炮走火

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值