鍍金池/ 問答/HTML/ vue-cli 中使用外部js

vue-cli 中使用外部js

初學(xué)者,使用vue-cli寫前端,因需要一個側(cè)邊菜單欄,找到了一個制作很不錯的模板:
https://github.com/huang-x-h/...
這個模板很簡單,主目錄就只有html文件,一個js文件和一個css文件,同時使用了jquery。
在本地直接打開html,可以正常使用,但是移動到vue-cli項目中有很大問題。
在原h(huán)tml頁面中:
clipboard.png
除了引用的兩個js文件,就只有這一句
$.sidebarMenu($('.sidebar-menu'))
在我的menu.vue中:
clipboard.png
我在mounted中復(fù)制了這一句,然后把js文件的內(nèi)容轉(zhuǎn)移到了methods
(js文件中只有$.sidebarMenu一個函數(shù))
此時對$后的.報錯:
Syntax Error: Unexpected token, expected ,
不知何解,但這本身只是函數(shù)名,于是我把函數(shù)名改為$_sidebarMenu(mountedmethods中都修改)
報錯轉(zhuǎn)移到了methods中的第一句$_sidebarMenu = function(menu) {中的=上面來了。
若把該句改為$_sidebarMenu:function(menu) {$_sidebarMenu(menu) {則報錯消失,但這個模板菜單就不能正確運行了,并且運行時會報$_sidebarMenu這個函數(shù)未定義的錯誤。
實在是不知道如何處理這幾個問題:
1, $.sidebarMenu的函數(shù)名為何報錯?
2, $_sidebarMenu = function(menu)這種函數(shù)定義不可以嗎?
3, 最后為什么會報函數(shù)未定義?

回答
編輯回答
綰青絲

抱歉,我之前看代碼沒有看仔細(xì),這是修正之后的答案。
之所以報錯,我覺得是你導(dǎo)入的錯誤,jquery官方文檔推薦在包含webpack的文檔中使用:

var $ = require("jquery");

導(dǎo)入Jquery。import方法會報錯,報錯內(nèi)容即為你所發(fā)出來的。

至于mounted函數(shù)中沒有報錯,而methods中報錯的原因,我想是因為編譯順序的問題,methods會在mounted之前編譯,具體可以查看官網(wǎng)的生命周期鉤子部分,地址如下:
https://cn.vuejs.org/v2/guide/instance.html

希望對你有所幫助~

2017年11月26日 10:38