因為最近vue火熱,所以自己也自學了一下vue,看了下官網的api,也看了網上的教程,自己結合所學的,寫了個demo,以下是我學習時遇到的問題,和demo中涉及的知識點。
1.這個demo用的是官網的配置方法,基於node,webpack,vue-cli的腳手架。具體步驟大家可以去官網教程查看,寫的很詳細。
2.下面是這個demo的顯示效果和目錄環境
這個demo中涉及的都是基礎的知識點,希望對於初學者能有幫助,首先我們根據步驟一步一步看代碼。
首先運行完index.html之后,就會進入到main.js
這里會從main.js進入到app.vue中
這個就是首頁,看結構可以看出,我們上面的兩個板塊,用到了vue-link組件,這個組件就相當於a鏈接,他會通過to后面的相對路徑找到對應的頁面。然后頁面的內容,會顯示在router-view中但首先你的vue項目要支持路由,然后看一下router文件夾下index.js中的代碼
我們把要跳轉的兩個頁面路徑配置在index.js中,其中第一個配置的就是默認進來路徑展示是哪個版塊。板塊中的數據是調用的mock假接口。這里說說,怎么在vue里面使用假接口。
首先在index.html下新建一個data.json。里面寫你要模擬的json數據。
然后在根目錄下找到build里找到dev-server.js文件加入下面代碼
這里面appData是引入你data.json的路徑。記得配置完dev-server.js之后要npm run dev一下,要不不會生效。然后我們引入vue-resource,就可以在頁面中使用假接口中的數據了。
下面我們看下news.vue頁面為例
這里this.$http.get(url)類似於jq的ajax一樣了,直接res.data就獲得接口中的數據了。
其中created就是一個生命周期鈎子函數,就是vue實例生成后調用的函數,一般我們都在created函數中處理ajax數據。
然后我們看一下下面的todolist。
我們這里的每條數據,都經過localstorage存儲,這樣刷新頁面我們的數據也不會丟失。首先我們監聽鍵盤的回車事件,然后觸發addNew方法,然后在下面methods中定義addNew方法。在addNew中定義我們所需要的參數。例如當前時間,輸入框內容,是否顯示選中和刪除按鈕。
然后就是checkbox選中事件
當我們都選中后,上面的title會變成今日畢。
當我們選則刪除按鈕時,我們就是把當前選中元素從items這個數組中刪除出去,然后 再渲染頁面時,自然就沒有這個dom了。
下面再說兩個項目中遇到的錯誤:
報錯:
Unknown custom element: - did you register the component correctly? For recursive components, make sure to provide the “name” option. (found in root instance)
是因為new Vue寫在了component之前,要寫在注冊組件之后。
報錯:
Cannot use v-for on stateful component root element because it renders multiple elements.
v-for不能用於根元素(root element)。因為v-for是個循環,它返回更多的元素。導致無法渲染。