初学者,使用vue-cli写前端,因需要一个侧边菜单栏,找到了一个制作很不错的模板:
https://github.com/huang-x-h/...
这个模板很简单,主目录就只有html文件,一个js文件和一个css文件,同时使用了jquery。
在本地直接打开html,可以正常使用,但是移动到vue-cli项目中有很大问题。
在原html页面中:
除了引用的两个js文件,就只有这一句$.sidebarMenu($('.sidebar-menu'))
在我的menu.vue中:
我在mounted中复制了这一句,然后把js文件的内容转移到了methods
中
(js文件中只有$.sidebarMenu
一个函数)
此时对$
后的.
报错:Syntax Error: Unexpected token, expected ,
不知何解,但这本身只是函数名,于是我把函数名改为$_sidebarMenu
(mounted
和methods
中都修改)
报错转移到了methods
中的第一句$_sidebarMenu = function(menu) {
中的=
上面来了。
若把该句改为$_sidebarMenu:function(menu) {
或$_sidebarMenu(menu) {
则报错消失,但这个模板菜单就不能正确运行了,并且运行时会报$_sidebarMenu
这个函数未定义的错误。
实在是不知道如何处理这几个问题:
1, $.sidebarMenu的函数名为何报错?
2, $_sidebarMenu = function(menu)这种函数定义不可以吗?
3, 最后为什么会报函数未定义?
抱歉,我之前看代码没有看仔细,这是修正之后的答案。
之所以报错,我觉得是你导入的错误,jquery官方文档推荐在包含webpack的文档中使用:
导入Jquery。
import
方法会报错,报错内容即为你所发出来的。至于
mounted
函数中没有报错,而methods
中报错的原因,我想是因为编译顺序的问题,methods
会在mounted
之前编译,具体可以查看官网的生命周期钩子
部分,地址如下:https://cn.vuejs.org/v2/guide/instance.html
希望对你有所帮助~