VUE學習筆記二
有時候使用 npm i node-sass -D 裝不上,這時候,就必須使用 cnpm i node-sass -D
在普通頁面中使用render函式渲染元件
在webpack中配置.vue元件頁面的解析
1. 執行 cnpm i vue -S 將vue安裝為執行依賴;
2. 執行 cnpm i vue-loader vue-template-compiler -D 將解析轉換vue的包安裝為開發依賴;
3. 執行 cnpm i style-loader css-loader -D 將解析轉換CSS的包安裝為開發依賴,因為.vue檔案中會寫CSS樣式;
4. 在 webpack.config.js 中,新增如下 module 規則:
module: {
rules: [
{ test: /\.css$/, use: ['style-loader', 'css-loader'] },
{ test: /\.vue$/, use: 'vue-loader' }
]
}
5. 建立 App.js 元件頁面:
<template> <!-- 注意:在 .vue 的元件中,template 中必須有且只有唯一的根元素進行包裹,一般都用 div 當作唯一的根元素 --> <View Codediv> <h1>這是APP元件 - {{msg}}</h1> <h3>我是h3</h3> </div> </template>
<script> // 注意:在 .vue 的元件中,通過 script 標籤來定義元件的行為,需要使用 ES6 中提供的 export default 方式,匯出一個vue例項物件 export default { data() {View Codereturn { msg: 'OK' } } } </script>
<style scoped> h1 { color: red; } </style>View Code
6. 建立 main.js 入口檔案:
// 匯入 Vue 元件
import Vue from 'vue'
// 匯入 App元件
import App from './components/App.vue'
// 建立一個 Vue 例項,使用 render 函式,渲染指定的元件
var vm = new Vue({
el: '#app',
render: c => c(App)
});
在使用webpack構建的Vue專案中使用模板物件?
1. 在 webpack.config.js 中新增 resolve 屬性:
resolve: {
alias: {
'vue$': 'vue/dist/vue.esm.js'
}
}
ES6中語法使用總結
1. 使用 export default 和 export 匯出模組中的成員; 對應ES5中的 module.exports 和 export
2. 使用 import from 和 import '路徑'` 還有 import {a, b} from '模組標識'` 匯入其他模組
3. 使用箭頭函式:`(a, b)=> { return a-b; }`
在vue元件頁面中,整合vue-router路由模組
[vue-router官網](https://router.vuejs.org/)
1. 匯入路由模組:
import VueRouter from 'vue-router'
2. 安裝路由模組:
Vue.use(VueRouter);
3. 匯入需要展示的元件:
import login from './components/account/login.vue'
import register from './components/account/register.vue'
4. 建立路由物件:
var router = new VueRouter({
routes: [
{ path: '/', redirect: '/login' },
{ path: '/login', component: login },
{ path: '/register', component: register }
]
});
5. 將路由物件,掛載到 Vue 例項上:
var vm = new Vue({
el: '#app',
// render: c => { return c(App) }
render(c) {
return c(App);
},
router // 將路由物件,掛載到 Vue 例項上
});
6. 改造App.vue元件,在 template 中,新增 router-link 和 router-view :
<router-link to="/login">登入</router-link> <router-link to="/register">註冊</router-link> <router-view></router-view>
元件中的css作用域問題
抽離路由為單獨的模組
使用 餓了麼的 MintUI 元件
[Github 倉儲地址](https://github.com/ElemeFE/mint-ui)
[Mint-UI官方文件](http://mint-ui.github.io/#!/zh-cn)
1. 匯入所有MintUI元件:
import MintUI from 'mint-ui'
2. 匯入樣式表:
import 'mint-ui/lib/style.css'
3. 在 vue 中使用 MintUI:
Vue.use(MintUI)
4. 使用的例子:
<mt-button type="primary" size="large">primary</mt-button>
使用 MUI 元件
[官網首頁](http://dev.dcloud.net.cn/mui/)
[文件地址](http://dev.dcloud.net.cn/mui/ui/)
1. 匯入 MUI 的樣式表:
import '../lib/mui/css/mui.min.css'
2. 在 webpack.config.js 中新增新的loader規則:
{ test: /\.(png|jpg|gif|ttf)$/, use: 'url-loader' }
3. 根據官方提供的文件和example,嘗試使用相關的元件
將專案原始碼託管到oschina中
1. 點選頭像 -> 修改資料 -> SSH公鑰 [如何生成SSH公鑰](http://git.mydoc.io/?t=154712)
2. 建立自己的空倉儲,使用 git config --global user.name "使用者名稱"` 和 git config --global user.email ***@**.com 來全域性配置提交時使用者的名稱和郵箱
3. 使用 git init 在本地初始化專案
4. 使用 touch README.md 和 touch .gitignore 來建立專案的說明檔案和忽略檔案;
5. 使用 git add .` 將所有檔案託管到 git 中
6. 使用 git commit -m "init project"` 將專案進行本地提交
7. 使用 git remote add origin 倉儲地址 將本地專案和遠端倉儲連線,並使用origin最為遠端倉儲的別名
8. 使用 git push -u origin master 將原生代碼push到倉儲中
App.vue 元件的基本設定
1. 頭部的固定導航欄使用 Mint-UI 的 Header 元件;
2. 底部的頁籤使用 mui 的 tabbar`;
3. 購物車的圖示,使用 icons-extra 中的 mui-icon-extra mui-icon-extra-cart ,同時,應該把其依賴的字型圖示檔案 mui-icons-extra.ttf ,複製到 fonts 目錄下!
4. 將底部的頁籤,改造成 router-link 來實現單頁面的切換;
5. Tab Bar 路由啟用時候設定高亮的兩種方式:
+ 全域性設定樣式如下:
.router-link-active{
color:#007aff !important;
}
+ 或者在 new VueRouter 的時候,通過 linkActiveClass 來指定高亮的類:
// 建立路由物件
var router = new VueRouter({
routes: [
{ path: '/', redirect: '/home' }
],
linkActiveClass: 'mui-active'
});
View Code
實現 tabbar 頁籤不同元件頁面的切換
1. 將 tabbar 改造成 router-link 形式,並指定每個連線的 to 屬性;
2. 在入口檔案中匯入需要展示的元件,並建立路由物件:
// 匯入需要展示的元件
import Home from './components/home/home.vue'
import Member from './components/member/member.vue'
import Shopcar from './components/shopcar/shopcar.vue'
import Search from './components/search/search.vue'
// 建立路由物件
var router = new VueRouter({
routes: [
{ path: '/', redirect: '/home' },
{ path: '/home', component: Home },
{ path: '/member', component: Member },
{ path: '/shopcar', component: Shopcar },
{ path: '/search', component: Search }
],
linkActiveClass: 'mui-active'
});
View Code
使用 mt-swipe 輪播圖元件
1. 假資料:
lunbo: [
'http://www.itcast.cn/images/slidead/BEIJING/2017440109442800.jpg',
'http://www.itcast.cn/images/slidead/BEIJING/2017511009514700.jpg',
'http://www.itcast.cn/images/slidead/BEIJING/2017421414422600.jpg'
]
2. 引入輪播圖元件:
<!-- Mint-UI 輪播圖元件 --> <div class="home-swipe"> <mt-swipe :auto="4000"> <mt-swipe-item v-for="(item, i) in lunbo" :key="i"> <img :src="item" alt=""> </mt-swipe-item> </mt-swipe> </div> </div>
在`.vue 元件中使用 vue-resource 獲取資料
1. 執行 cnpm i vue-resource -S 安裝模組
2. 匯入 vue-resource 元件
import VueResource from 'vue-resource'
3. 在vue中使用 vue-resource 元件
Vue.use(VueResource);