vue.prototype和vue.use,vue.prototype.$store

  vue.prototype和vue.use,vue.prototype.$store

  本文将结合示例代码介绍Vue中Vue.prototype的使用。本文通过示例代码非常详细。有需要的朋友就跟着下面的边肖学习吧。

  :

目录

   1.基本例2。设置实例原型3的范围。注册和使用全局变量4。原型方法5的背景。应用实例5.1介绍axiosVue.prototype,vue.component1和Vue.use difference 1,Vue.prototype2,vue.component3,Vue.use我们可能会在很多组件中发现一些差异,在这种情况下,通过在原型上定义它们,可以使它们在Vue的每个实例中都可用。

  

1. 基本示例

  向main.js中的Vue.prototype添加一个变量

  Vue.prototype.$appName=我的应用程序

  这样,$appName在所有Vue实例中都可用,甚至在创建实例之前。

  新Vue({

  创建之前:函数(){

  console.log(这个。$appName)

  }

  })

  控制台会打印出我的App,就这么简单!

  

2. 为实例prototype设置作用域

  appName为什么以开头?这很重要吗?这里没有魔法。开始?这很重要吗?这里没有魔法。开始?这很重要吗?这里没有魔法。是一个简单的属性约定,在Vue的所有实例中都可用。这样做将避免与已定义的数据、方法和计算属性发生冲突。

  如果我们设定:

  Vue.prototype.appName=我的应用程序

  那么下面的代码会输出什么呢:

  新Vue({

  数据:{

  //啊哈,appName也是我们定义的实例属性名!

  appName:“某个其他应用程序的名称”

  },

  创建之前:函数(){

  console.log(this.appName)

  },

  已创建:函数(){

  console.log(this.appName)

  }

  })

  在日志中,“我的应用程序”将首先出现,然后“某个其他应用程序的名称”将出现,因为this.appName在实例创建后被数据覆盖。我们通过设置实例属性的范围来避免这种情况。您也可以根据自己的喜好使用自己的约定,比如设置实例属性的范围来避免这种事情。您也可以根据自己的喜好使用自己的约定,比如设置实例属性的范围来避免这种事情。也可以根据自己的喜好使用自己的约定,比如_appName或者 appname,避免与插件或者以后的插件冲突。

  

3. 注册和使用全局变量

  每个组件都是一个vue实例。Vue.prototype添加了一个变量,但是只给每个组件添加了一个属性。此属性的值不是全局的。

  例如,下面的例子:

  //main.js

  从“vue”导入Vue

  从导入应用程序。/App

  从导入路由器。/路由器

  从导入存储。/商店

  Vue.config.productionTip=false

  Vue.prototype.$appName=main

  新Vue({

  埃尔: #app ,

  店,

  路由器,

  组件:{ App },

  模板:“App/”,

  })

  //所有组件都用属性$appName注册,该属性的初始值为“main”。所有组件都可以用这个来访问这个变量。$ appName

  //如果组件中没有赋值,初始值都是“main”

  //home.vue

  模板

  差异

  div @click=changeName 更改名称/div

  div @click=gotoTest2 转到test2/div

  /div

  /模板

  脚本

  导出默认值{

  方法:{

  changeName(){

  这个。$appName=test1

  },

  gotoTest2(){

  这个。$router.push(/about )

  }

  }

  }

  /脚本

  //about.vue

  模板

  差异

  div { {这个。test2/div中的$appName}}

  /div

  /模板

  单击主目录中的更改名称,并跳转到about,它仍然在test2中显示main。

  如果要实现全局变量的功能,就需要把属性改成引用类型。

  vue . prototype . $ appName={ name: main }

  用这个。$appName.name以更改并引用相应的值。

  输入about后,显示test2中的test1。

  

4. 原型方法的上下文

  在JavaScript中,原型的方法会获取实例的上下文,也就是说,你可以用这个来访问:数据、计算属性、方法或者实例上定义的其他任何东西。

  让我们在一个名为$reverseText的方法中使用它:

  //main.js

  vue . prototype . $ reverse text=function(property name){

  这个[属性名]=这个[属性名]。拆分(“”)。反向()。联接(“”)

  }

  //相应的组件

  脚本

  导出默认值{

  data() {

  返回{

  消息:“你好”

  }

  },

  已创建(){

  console . log(this . message)//= Hello

  这个。$reverseText(message )

  console . log(this . message)//= olleH

  }

  }

  /脚本

  

5. 应用示例

  

5.1 引入 axios

  npm安装vue-axios -保存

  npinstallqs . js-save//的作用是直接将json格式转换成数据格式。

  //mian.js

  从“vue”导入Vue

  从“axios”导入axios

  从“qs”导入qs

  Vue.prototype.$axios=axios //全局注册,用这个。$axios

  Vue.prototype.qs=qs //全局注册,使用this.qs

  //相应的组件

  脚本

  导出默认值{

  data(){

  返回{

  用户Id:666,

  令牌:,

  }

  },

  已创建(){

  这个。$axios({

  方法: post ,

  URL:“API”,

  Data:this.qs.stringify({ //这里是发送到后台的数据

  userId:this.userId

  token:this.token,

  })

  }).然后((response)={ //这里用的是ES6的语法。

  Console.log(response) //请求成功返回的数据

  }).catch((错误)={

  Console.log(error) //请求失败返回的数据

  })

  }

  }

  /脚本

  

Vue.prototype、Vue.component和Vue.use区别

  

1、Vue.prototype

  当需要在许多地方使用该定义但不想污染全局范围时,该定义可以在每个Vue实例中使用。

  参考:3359 cn . vue js . org/v2/cookbook/adding-instance-properties . html

  $表示这是一个在所有Vue实例中都可用的属性。

  常用于方法、变量等。

  从“电子海图”导入电子海图

  Vue.prototype.$echarts=echarts

  

2、vue.component

  全球注册组件,

  第一个参数是调用组件时写入的组件名。

  第二个参数是引入组件时写入的名称。

  可用于注册自定义组件。

  从“基本/加载”导入myLoading

  Vue.component(myLoading ,my loading);

  

3、Vue.use

  同样是全局注册,和component的区别在于收到的参数必须有install方法。

  通常用于注册第三方插件

  从“element-ui”导入ElementUI

  vue . use(element ui);

  关于Vue中Vue.prototype使用的详细说明,本文到此为止。有关Vue.prototype使用的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: