DDR爱好者之家 Design By 杰米
本文主要给大家介绍的是关于在Vue框架中正确引入JS库的相关内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍:
错误示范
全局变量法
最不靠谱的方式就是将导入的库挂在全部变量window 对象下:
// entry.js: window._ = require('lodash'); // MyComponent.vue: export default { created() { console.log(_.isEmpty() "htmlcode">// MyComponent.vue: import _ from 'lodash'; export default { created() { console.log(_.isEmpty() "color: #ff0000">正确引入方式最简单靠谱的方式是用库变成Vue的原型对象的属性。下面,我来演示如何将Moment 库引入:
import moment from 'moment'; Object.definePrototype(Vue.prototype, '$moment', { value: moment });
Object.definePrototype
语法参见 MDN由于所有的组件都会继承Vue原型对象上的方法,因此这些方法在任何组件文件中都能通过this.$moment 访问到:
// MyNewComponent.vue export default { created() { console.log('The time is ' . this.$moment().format("HH:mm")); } }使用
Object.defineProperty
定义对象属性,如果不在属性描述器中额外说明,则该属性就是默认只读的,保护引入的库不被重新赋值。
写成插件
如果你在项目的很多地方都用了某个库,或者你希望全局可用,你可以构建自己的Vue 插件。
插件能化繁为简,能让你像下面这样很简单地引入自己想要的库:
import MyLibraryPlugin from 'my-library-plugin'; Vue.use(MyLibraryPlugin);就像Vue Route,Vuex等插件一样,我们的库仅仅需要两行,就能在任何地方使用了。
如何写插件
首先,创建一个文件。本例中,我将引入一个Axios库的插件。我们就把这个文件命名为axios.js 吧。
最关键的地方在于,我们需要暴露一个将Vue构造器作为第一个参数的install 方法。
// axios.js: export default { install: function(Vue) { // Do stuff } }然后我们可以用之前的方式将库添加到Vue的原型对象上:
// axios.js import axios from 'axios'; export default { install: function(Vue) { Object.defineProperty(Vue.prototype, '$http', { value: axios }); } }接着我们只需要Vue实例的use方法就能将这个库引入整个项目了。我们像下面代码一样简单引入:
// entry.js import AxiosPlugin from './axios.js'; Vue.use(AxiosPlugin); new Vue({ created() { console.log(this.$http "htmlcode">// axios.js import axios from 'axios'; export default { install: function(Vue, name = '$http') { Object.defineProperty(Vue.prototype, name, { value: axios }); } }// entry.js import AxiosPlugin from './axios.js'; Vue.use(AxiosPlugin, '$axios'); new Vue({ created() { console.log(this.$axios "color: #ff0000">总结以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
更新日志
2024年11月27日
2024年11月27日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]