博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue添加实例属性
阅读量:6088 次
发布时间:2019-06-20

本文共 1449 字,大约阅读时间需要 4 分钟。

hot3.png

你可能会在很多组件里用到数据/实用工具,但是不想。这种情况下,你可以通过在原型上定义它们使其在每个 Vue 的实例中可用。

Vue.prototype.$appName = 'My App'

 

假如我们全局定义一个实例属性,这样就可以在所有vue实例中使用。

例如:

main.js

// The Vue build version to load with the `import` command// (runtime-only or standalone) has been set in webpack.base.conf with an alias.import Vue from 'vue'import App from './App'import router from './router'Vue.config.productionTip = falseVue.prototype.$appName = 'hello world' //全局定义一个实例属性/* eslint-disable no-new */new Vue({  el: '#app',  router,  components: { App },  template: '
'})

HelloWorld.vue(这样就可以在各个vue实例中使用)

注意:在这里我们可以看到,在用原型去定义一个实例属性的时候,我们在属性名的前方加了一个 '$',比如我们刚才定义的属性名'appName'的前方就有一个'$',其实这么做的目的就是:避免与在各个vue实例中已定义相同名称的属性发生冲突。

假如我们不加'$',会发生什么情况呢?

main.js

// The Vue build version to load with the `import` command// (runtime-only or standalone) has been set in webpack.base.conf with an alias.import Vue from 'vue'import App from './App'import router from './router'Vue.config.productionTip = falseVue.prototype.appName = 'hello world' //全局定义一个实例属性/* eslint-disable no-new */new Vue({  el: '#app',  router,  components: { App },  template: '
'})

HelloWorld.vue

从上面我们可以看出打印的结果是不一样的,因为全局定义的属性名与实例中定义的属性名是相同的,所以你得到的只是各个实例中的数据,而不是全局中想要得到的数据,所以为了区别开才要加个‘$’,加什么不重要,是随意的,重要的是避免冲突。

不是全局配置:

 HelloWorld.vue

 

 

转载于:https://my.oschina.net/u/3946362/blog/1999043

你可能感兴趣的文章
JavaScript/数据类型/function/closure闭包
查看>>
30个免费资源:涵盖机器学习、深度学习、NLP及自动驾驶
查看>>
读zent源码库之Dialog组件实现
查看>>
express中间层搭建前端项目3
查看>>
【刷算法】我知道的所有类似斐波那契数列的问题
查看>>
centos下安装JAVA开发工具(3)------Mysql
查看>>
Docker Swarm的前世今生
查看>>
从0开始构建自己的前端知识体系-不要对"=="说不
查看>>
Python 从零开始爬虫(七)——实战:网易云音乐评论爬取(附加密算法)
查看>>
Java设计模式--单例模式
查看>>
JS 实现文字滚动显示
查看>>
php实现依赖注入(DI)和控制反转(IOC)
查看>>
【EASYDOM系列教程】之遍历节点
查看>>
RecyclerView添加分割线的简便方法
查看>>
HTTP状态码: 301/302/303/307
查看>>
如何搭建高质量、高效率的前端工程体系--页面结构继承
查看>>
白山云科技 CTO 童剑:空降后,如何有技术又有艺术地破局?
查看>>
Google发布App Engine第二代运行时,提供Python 3.7和PHP 7.2支持
查看>>
通过XAML Islands使Windows桌面应用程序现代化
查看>>
Mozilla开发全新的公开网络API WebXR 来实现增强现实
查看>>