vue新手入門出現(xiàn)function () { [native code] }錯誤的解決方案
出現(xiàn)function () { [native code] }錯誤的解決
控制臺輸出錯誤:
[Vue warn]: Unknown custom element: <p1> - did you register the component correctly?
For recursive components, make sure to provide the "name" option.
頁面提示:
function () { [native code] },無法出現(xiàn)我們想要的內(nèi)容
頁面代碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="vue"> <!-- 下面這行代碼出錯--> <p1>{{currentTime1}}</p1></br> </div> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src="https://unpkg.com/axios/dist/axios.min.js"></script> <script> var vm=new Vue({ el:"#vue", data:{ message:"hello world" }, methods:{ currentTime1: function () { return Date.now();//返回當(dāng)前時間戳 } } }); </script> </body> </html>
綜上錯誤,究其原因就是新人對“計算屬性”:computed和“事件處理”:methods傻傻分不清楚。根據(jù)官方文檔總結(jié)如下:
對于任何復(fù)雜邏輯,你都應(yīng)當(dāng)使用計算屬性。其余可以使用methods處理。
https://cn.vuejs.org/v2/guide/computed.html?
所以,下次如果再出現(xiàn)function () { [native code] },請使用對應(yīng)的方法獲取值。
這里的methods方法就應(yīng)該使用currentTime1()調(diào)用,計算屬性computed就應(yīng)該使用currentTime2調(diào)用。
完整methods方法和計算屬性對比運行代碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="vue"> <p1>{{currentTime1()}}</p1></br> <p1>{{currentTime2}}</p1> </div> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src="https://unpkg.com/axios/dist/axios.min.js"></script> <script> var vm=new Vue({ el:"#vue", data:{ message:"hello world" }, methods:{ currentTime1: function () { return Date.now();//返回當(dāng)前時間戳 } }, computed:{ //存在緩存,建議不經(jīng)常的變化的在次操作 currentTime2:function () { return Date.now(); } } }); </script> </body> </html>
頁面效果:
vue使用過程中遇到的bug及解決
1.用event.target操作當(dāng)前元素出現(xiàn)bug
改為用event.currentTarget。
2.data數(shù)據(jù)更新之后渲染頁面是異步的
所以要在$nextTick里面,DOM元素更新之后再操作DOM
3.v-cloak解決網(wǎng)絡(luò)不好時頁面顯示雙花括號{{}}問題
<template> ? <div id="app"> ? ? <div v-cloak>{{ item.title }}</div> ? </div> </template>
<style> ? [v-cloak] { ? ? ? display: none; ? } </style>
4.v-pre跳過組件和子組件的編譯過程
比如<span v-pre>{{ instead }}</span>渲染出來的是{{ instead }}字符串,不會再js中找instead這個數(shù)據(jù)
5.element的navMenu導(dǎo)航菜單的index不能用數(shù)字
而要用字符串。
解決辦法: :index = "index + ‘’" 轉(zhuǎn)化成字符串
6.vue中main.js一引入sass文件就報錯
提示路徑找不到或者依賴找不到,是因為webpack.base.conf.js中
{ ? ? ? ? test: /\.scss$/, ? ? ? ? loaders: ["style", "css", "sass"] ? ? ? }
重復(fù)配了,把它刪掉就好了(新版的vue-cli默認(rèn)配置了這個)
7.所有的v-if最好都加上key
否則因為相同標(biāo)簽元素復(fù)用會導(dǎo)致意想不到的bug
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Pure admin-Router標(biāo)簽頁配置與頁面持久化實現(xiàn)方法詳解
這篇文章主要介紹了Pure admin-Router標(biāo)簽頁配置與頁面持久化實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-01-01Vue.js中class與style的增強(qiáng)綁定實現(xiàn)方法
由于Class和Style綁定使用頻繁,字符串拼接麻煩且易錯,因此,Vue.js 做了專門的增強(qiáng),表達(dá)式結(jié)果的類型除了字符串之外,還可以是對象或數(shù)組,本文給大家講解Vue.js中class與style的增強(qiáng)綁定知識,感興趣的朋友一起看看吧2023-04-04VUE element上傳動態(tài)設(shè)置action路徑和參數(shù)的坑及解決
這篇文章主要介紹了VUE element上傳動態(tài)設(shè)置action路徑和參數(shù)的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07解決vue props傳Array/Object類型值,子組件報錯的情況
這篇文章主要介紹了解決vue props傳Array/Object類型值,子組件報錯的情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11