1、首先直接參照官網Demo例子,將代碼拷貝進項目中運行,
直接報錯:
Cannot read property 'mode' of undefined.
然后查看官網介紹,有一行注意文字,好吧。

2、然后將Menu標簽改為i-menu.
這下沒有報錯了,但是樣式顯示的根本不是想要的:

什么個鬼,然后官網也沒有其他什么說明了。。。。
OK,找度娘查找資料,找到這篇文章:http://wallimn.iteye.com/blog/2400663
原來還有幾個標簽必須得改掉才行:
1、MenuItem 修改為: Menu-Item
2、 <Icon type="ios-paper" /> 修改為:<Icon type="ios-paper" ></Icon> (標簽必須寫完整,Icon標簽后文字顯示不出來,這是什么騷操作。。。。)
3、RadioGroup 修改為: Radio-Group
修改為之后,效果OK了,真是坑,按照官網介紹,並沒有指出這些組件必須要這樣寫,只是粗略的說了一些,大概可能也許還是我太菜鳥了,這么簡單的問題還花了不少時間:
(官網:https://www.iviewui.com/docs/guide/start#TBTX)
在非 template/render 模式下(例如使用 CDN 引用時),組件名要分隔,例如 DatePicker 必須要寫成 date-picker。
以下組件,在非 template/render 模式下,需要加前綴 i-:
- Button:
i-button - Col:
i-col - Table:
i-table - Input:
i-input - Form:
i-form - Menu:
i-menu - Select:
i-select - Option:
i-option - Progress:
i-progress - Time:
i-time
以下組件,在所有模式下,必須加前綴 i-,除非使用 iview-loader:
- Switch:
i-switch - Circle:
i-circle
附完整示例代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>iview example</title>
<link href="~/lib/iview3.1.4/styles/iview.css" rel="stylesheet" />
<script src="~/lib/vue2.5.17/vue.min.js"></script>
<script src="~/lib/iview3.1.4/iview.min.js"></script>
</head>
<body>
<div id="app">
<template>
<i-menu mode="horizontal" :theme="theme1" active-name="1">
<Menu-Item name="1">
<Icon type="ios-paper" ></Icon>
內容管理
</Menu-Item>
<Menu-Item name="2">
<Icon type="ios-people" ></Icon>
用戶管理
</Menu-Item>
<Submenu name="3">
<template slot="title">
<Icon type="ios-stats" ></Icon>
統計分析
</template>
<MenuGroup title="使用">
<Menu-Item name="3-1">新增和啟動</Menu-Item>
<Menu-Item name="3-2">活躍分析</Menu-Item>
<Menu-Item name="3-3">時段分析</Menu-Item>
</MenuGroup>
<MenuGroup title="留存">
<Menu-Item name="3-4">用戶留存</Menu-Item>
<Menu-Item name="3-5">流失用戶</Menu-Item>
</MenuGroup>
</Submenu>
<Menu-Item name="4">
<Icon type="ios-construct" ></Icon>
綜合設置
</Menu-Item>
</i-menu>
<br>
<p>Change theme</p>
<Radio-Group v-model="theme1">
<Radio label="light"></Radio>
<Radio label="dark"></Radio>
<Radio label="primary"></Radio>
</Radio-Group>
</template>
</div>
<script type="text/javascript">
var vue = new Vue({
el: '#app',
data: {
theme1: 'primary'
}
});
</script>
</body>
</html>
