uniapp引入全局js,vue2/vue3不同方式引入

这篇具有很好参考价值的文章主要介绍了uniapp引入全局js,vue2/vue3不同方式引入。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Hi I’m Shendi


uniapp引入全局js,vue2/vue3不同方式引入



最近写小程序,个人开发,选用了 uni-app 进行开发

选用的 vue3 版本


vue2版引入全局js

因为我用的 vue3 版本,在这里踩了没学过vue3的坑,用vue2引入全局js的方式使用,导致undefined…


Vue2 版引入全局js的方法如下

  • 将js放到项目内,一般放到自建的 common 文件夹下,且export
  • 在 main.js 中引入和挂载
  • 通过 this 调用

例如新建一个 util.js,放到 common/js 下

util.js内容如下

uniapp引入全局js,vue2/vue3不同方式引入


在 main.js 引入和挂载

import util from "@/common/js/util.js";
Vue.prototype.$util = util;

在需要调用全局函数的页面中使用 this.$util 来调用全局函数。

export default {
  methods: {
    showMessage() {
      this.$util.showToast('Hello World')
    }
  }
}


vue3版引入全局js

文档很少,在这种基础问题上浪费了我大量时间…

有两种方式



依赖注入(provide/inject)

在Vue3中,可以使用 provideinject 来实现全局引入JS文件

  • 将js放到项目内,一般放到自建的 common 文件夹下,且export
  • 在 main.js 中使用 provide 将定义的变量或函数提供给其他组件
  • 使用 inject 来注入 provide 提供的变量或函数

例如新建一个 util.js,放到 common/js 下,内容同上方vue2一致

uniapp引入全局js,vue2/vue3不同方式引入


在主入口文件(如 main.js)中,引入全局JS文件,并使用 provide 方法将定义的变量或方法提供给所有组件:

uni-app的话,位置就在底部 const app = createSSRApp(App) 处使用就可以了,当时我使用错了app,用的最上方的,导致一直undefined

IDE会自动在上方引入 provide

import Vue, { provide } from 'vue'

uniapp引入全局js,vue2/vue3不同方式引入


在要使用的地方使用 inject

<script>
	import { inject } from "vue"
	export default {
		inject : ["util"],
		data() {
			return {
				
			}
		},
		onLoad() {
			
		},
		methods: {
			test() {
				this.util.showToast("123");
			}
		}
	}
</script>

直接赋值

在 main.js 内使用 app.config.globalProperties 来直接赋值,代码位置与上面那种方式一致

import { createSSRApp } from 'vue'
import util from '@/common/js/util.js'
export function createApp() {
  const app = createSSRApp(App)
  
  app.config.globalProperties.util = util;
  
  return {
    app
  }
}

使用时直接 this 调用即可,一般命名会以 $ 开头

methods: {
    test() {
        this.util.showToast("123");
    }
}



END文章来源地址https://www.toymoban.com/news/detail-437307.html

到了这里,关于uniapp引入全局js,vue2/vue3不同方式引入的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue2和vue3项目之间的不同

    总结一下vue3跟vue2在使用时语法的不同 npm install vue-cli -g (vue-lcli2) npm install -g @vue/cli (vue-cli3) 我本地没有vue-cli2.x,所以复制了一下别人的用来记录。 以管理员身份打开命令行界面 (按住 shift 鼠标右键 打开 PowerShell),输入命令: 全局安装 webpack:npm install webpack -g (vue2需要安

    2024年02月13日
    浏览(40)
  • 【Vue2】引入本地原生JS文件

    日常开发的时候,第一个想法肯定是找现有的插件进行开发,在项目中npm install xxx 插件即可。但是也有无法使用的插件的情况,就需要我们引用我们本地的原生js。 自己写的文件或者别人的插件都可以通过下面的方式修改成vue能够识别的js。 字符操作文件 utils/str.js  在函数

    2024年02月16日
    浏览(46)
  • vue项目引入video.js播放不同格式视频

    很多小伙伴使用原生video标签播放服务器返回的地址的视频,但是会发现video标签对视频的格式限制很多,限制MP4,WebM,Ogg三种格式的视频格式。但是对于需求不限制于此,就需要引入插件库,这里引入第三方插件库video.js来实现更多的需求。注意:video.js也限制视频格式,可在

    2024年02月11日
    浏览(54)
  • vue3中l和vue2中v-model不同点

    vue2比较让人诟病的一点就是提供了两种双向绑定:v-model和.sync, 在vue3中,去掉了.sync修饰符,只需要使用v-model进行双向绑定即可。 为了让v-model更好的针对多个属性进行双向绑定(vue2中自定义组件中v-model只能使用一次),vue3做出了以下修改: 1、当对自定义组件使用v-mod

    2024年01月21日
    浏览(39)
  • uniapp小程序全局分享功能Vue3

    问题:在小程序的任何界面都能通过点击右上角三个点进行 分享好友/朋友圈 功能 目录 1.创建shareMixin文件夹,创建shareMixin.ts文件 2.在main.ts进行挂载 3.在程序任意处即可实现分享 1.创建shareMixin文件夹,创建shareMixin.ts文件 2.在main.ts进行挂载 只需要导入跟挂载即可,重点 app

    2024年01月23日
    浏览(36)
  • 【Vue3/Vue2】判断设备是移动端还是pc端跳转不同路由router

          APP文件中写入js代码 1、首先,通过 isMobile() 函数判断用户的设备类型。该函数使用正则表达式匹配 navigator.userAgent 字符串,以确定用户是在移动设备上访问网页还是在桌面设备上访问网页 2、然后,在 onMounted() 钩子函数中,根据当前的路由路径来判断是否需要进行重定

    2024年01月16日
    浏览(62)
  • vue2+three.js+blender(实现3d 模型引入并可点击效果)

    2023.9.13今天我学习了如何把3d建模里面的模型引入到vue中,并可以实现拖动,点击的效果: 首先安装: npm install three 相关代码如下:  如果没有图片可以去 Three.js--》建模软件如何加载外部3D模型?_threejs加载3d模型_亦世凡华、的博客-CSDN博客

    2024年02月03日
    浏览(64)
  • Vue3 —— 在vue中动态引入组件以及动态引入js的方法

    文章目录 一 、 动态引入组件 1. 具体写法 二、 动态引入js文件 1. 具体写法 总结 定义一个异步组件,它在运行时是懒加载的。参数可以是一个异步加载函数,或是对加载行为进行更具体定制的一个选项对象。 在大型项目中,我们可能需要拆分应用为更小的块,并仅在需要时

    2024年02月12日
    浏览(52)
  • uniapp使用addInterceptor路由拦截(vue2 OR vue3)

    说明 初始版本方法,可能因为能力原因存在不足,请见谅,有问题评论区~~ 主要通过 uni.addInterceptor api进行路由拦截 目前小程序上面对于uniapp提供的路由跳转方式可以实现拦截,自带的返回按钮,底部tabbar切换无法拦截他们的跳转,但是可以监听到to和from h5支持路由全部拦截

    2024年02月09日
    浏览(45)
  • 前端(四)——vue.js、vue、vue2、vue3

    😊博主:小猫娃来啦 😊文章核心: vue.js、vue、vue2、vue3从全局到局部 Vue.js是一款流行的JavaScript框架 vue,vue2,vue3都是vue.js的不同版本。 Vue:Vue.js的第一个版本,也称为Vue 1.x。它于2014年首次发布,并获得了广泛的应用和认可。 Vue2:Vue.js的第二个版本,也称为Vue 2.x。它在Vu

    2024年02月12日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包