Vue单个页面引入CDN链接

作者 : 开心源码 本文共1283个字,预计阅读时间需要4分钟 发布时间: 2022-05-13 共206人阅读

在理解了render函数与createElement函数的基础上,想要实现Vue单个页面引入CDN链接就简单很多了。

  • 首先采用createElement创立不同资源类型(以js、css为例)的VNode
// js CDNcreateElement('script', {    attrs: {        type: 'text/javascript',        src: this.cdn    }})// css CDNcreateElement('link', {    attrs: {        rel: 'stylesheet',        type: 'text/css',        href: this.cdn    }})
  • 而后基于上述VNode,采用render创立函数式组件remote-jsremote-css
components: {    'remote-js': {        render(createElement) {            return createElement('script', {                attrs: {                    type: 'text/javascript',                    src: this.cdn                }            })        },        props: {            cdn:  {                type: String,                required: true            }        }    },    'remote-css': {        render(createElement) {            return createElement('link', {                attrs: {                    rel: 'stylesheet',                    type: 'text/css',                    href: this.cdn                }            })        },        props: {            cdn:  {                type: String,                required: true            }        }    }}
  • Vue单页面引入
<template>    <div class="my-page">        <remote-js cdn="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></remote-js>        <remote-css cdn="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.min.css"></remote-css>    </div></template>
  • 彩蛋(=。=)
    假如你觉得render函数写起来很吃力的话,即可以利用Bable插件,在Vue 中使用 JSX ,让我们可以无限接近于模板语法。上述代码就变成下面这样了,如同是顺眼了一丢丢吧:
components: {    'remote-js': {        render(h) {            return (                <script type= 'text/javascript' src={this.cdn}></script>            )        },        props: {            cdn:  {                type: String,                required: true            }        }    },    'remote-css': {        render(h) {            return (                <link rel='stylesheet' type='text/css' href={this.cdn} />            )        },        props: {            cdn:  {                type: String,                required: true            }        }    }}

PS:将 h 作为 createElement 的别名是 Vue 生态系统中的一个通用惯例,实际上也是 JSX 所要求的。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Vue单个页面引入CDN链接

发表回复