1. 程式人生 > >VUE學習筆記二

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 當作唯一的根元素 -->
      <
div> <h1>這是APP元件 - {{msg}}</h1> <h3>我是h3</h3> </div> </template>
View Code
    <script>
    // 注意:在 .vue 的元件中,通過 script 標籤來定義元件的行為,需要使用 ES6 中提供的 export default 方式,匯出一個vue例項物件
    export default {
      data() {
        
return { msg: 'OK' } } } </script>
View Code

 

 

    <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);