vue-cli 中使用外部js

初学者,使用vue-cli写前端,因需要一个侧边菜单栏,找到了一个制作很不错的模板:
https://github.com/huang-x-h/...
这个模板很简单,主目录就只有html文件,一个js文件和一个css文件,同时使用了jquery。
在本地直接打开html,可以正常使用,但是移动到vue-cli项目中有很大问题。
在原html页面中:
clipboard.png
除了引用的两个js文件,就只有这一句
$.sidebarMenu($('.sidebar-menu'))
在我的menu.vue中:
clipboard.png
我在mounted中复制了这一句,然后把js文件的内容转移到了methods
(js文件中只有$.sidebarMenu一个函数)
此时对$后的.报错:
Syntax Error: Unexpected token, expected ,
不知何解,但这本身只是函数名,于是我把函数名改为$_sidebarMenu(mountedmethods中都修改)
报错转移到了methods中的第一句$_sidebarMenu = function(menu) {中的=上面来了。
若把该句改为$_sidebarMenu:function(menu) {$_sidebarMenu(menu) {则报错消失,但这个模板菜单就不能正确运行了,并且运行时会报$_sidebarMenu这个函数未定义的错误。
实在是不知道如何处理这几个问题:
1, $.sidebarMenu的函数名为何报错?
2, $_sidebarMenu = function(menu)这种函数定义不可以吗?
3, 最后为什么会报函数未定义?

阅读 4k
1 个回答

抱歉,我之前看代码没有看仔细,这是修正之后的答案。
之所以报错,我觉得是你导入的错误,jquery官方文档推荐在包含webpack的文档中使用:

var $ = require("jquery");

导入Jquery。import方法会报错,报错内容即为你所发出来的。

至于mounted函数中没有报错,而methods中报错的原因,我想是因为编译顺序的问题,methods会在mounted之前编译,具体可以查看官网的生命周期钩子部分,地址如下:
https://cn.vuejs.org/v2/guide/instance.html

希望对你有所帮助~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏