经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » Vue.js » 查看文章
Vue组件公用方法提取mixin实现
来源:jb51  时间:2022/3/29 13:47:23  对本文有异议

一.应用场景

多个组件共用一个方法时可以用 mixin 抽取到一个js文件中,作为共用方法

二.实现方法

1.提取js共用方法文件

  1. export const common = {
  2. ?? ?
  3. ?? ?// 组件共用属性 ----------------------------------
  4. ?? ?data() {
  5. ?? ??? ?return {
  6. ?? ??? ??? ?age: 18?? ??? ??? ? ? ? ? ?// 设置一个共用属性
  7. ?? ??? ?}
  8. ?? ?},
  9. ?? ?// ---------------------------------------------
  10. ?? ?
  11. ?? ?// 组件共用方法 ---------------------------------------------
  12. ?? ?methods: {
  13. ?? ??? ?showName() {
  14. ?? ??? ??? ?alert(this.name) ??? ??? ?// 弹出组件中name属性的共用方法
  15. ?? ??? ?}
  16. ?? ?},
  17. ?? ?// --------------------------------------------------------
  18. ?? ?
  19. ?? ?// 组件挂载时的共用方法 ----------------------
  20. ?? ?mounted() {
  21. ?? ??? ?console.log('初始化方法') ? ?// 挂载时调用
  22. ?? ?},
  23. ?? ?// ----------------------------------------
  24. ?? ?
  25. }

2.引入

  1. <template>
  2. ?? ?<div>
  3. ?? ??? ?<div>组件</div>
  4. ?? ??? ?<button @click="showName">弹出姓名</button>
  5. ?? ?</div>
  6. </template>
  7.  
  8. <script>
  9.  
  10. ?? ?// 引入js文件中的方法对象 --------------------
  11. ?? ?import {common, } from '../pub_js/common.js'
  12. ?? ?// ----------------------------------------
  13. ?? ?
  14. ?? ?export default {
  15. ?? ??? ?name: 'Student',
  16. ?? ??? ?data() {
  17. ?? ??? ??? ?return {
  18. ?? ??? ??? ??? ?name: '张三'
  19. ?? ??? ??? ?}
  20. ?? ??? ?},
  21. ?? ??? ?
  22. ?? ??? ?// 调用 mixin 将组件js与共用js合并 ---
  23. ?? ??? ?mixins: [common, ],
  24. ?? ??? ?// --------------------------------
  25. ?? ??? ?
  26. ?? ?}
  27. </script>

三.注意事项

  • 1.data中的属性合并后,如果有命名冲突的情况,以组件中的属性为主,【组件属性覆盖共用js中的属性】
  • 2.methods中的方法合并后,如果有命名冲突的情况,以组件中的方法为主,【组件方法覆盖共用js中的方法】
  • 3.mounted等生命周期方法合并后,会先调用共用js中的的生命周期函数,再调用组件中的生命周期函数,【不会进行覆盖】
  • 4.如果是全局共用的方法,可以直挂载到main.js中↓
  1. import Vue from 'vue'
  2. import App from './App.vue'
  3.  
  4. Vue.config.productionTip = false
  5.  
  6. // 挂载全局共用方法 -----------------------
  7. import {common, } from 'pub_js/common.js'
  8. Vue.mixin(common)
  9. // --------------------------------------
  10.  
  11. new Vue({
  12. ? render: h => h(App),
  13. }).$mount('#app')

到此这篇关于Vue组件公用方法提取mixin实现的文章就介绍到这了,更多相关Vue组件提取内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号