1. 程式人生 > >vue全家桶+node+mongodb商城專案小結

vue全家桶+node+mongodb商城專案小結

配置檔案

  • index.js
  • webpack.base.conf.js

vue.js基礎語法

  • mustache語法:{{msg}}
  • html賦值:v-html=""
  • 繫結屬性:v-bind:id=""
  • 使用表示式:{{ ok?'Yes:No' }}
  • 文字賦值:v-text=""
  • 指令:v-if=""條件判斷
  • 過濾器:{{ message | capitalize }}v-bind:id="rawId | formatId"

class和style繫結

  • 物件語法:v-bind:class="{'active':isActive, 'text-danger':hasError}"
  • 陣列語法:v-bind:class="[activeClass, errorClass]"
    data:{
    activeClass:'active',
    errorClass:'text-danger'
    }
  • style繫結-物件語法:v-bind:style=""

條件渲染

  • v-if
  • v-else
  • v-else-if
  • v-show
  • v-cloak

v-if如果條件不成立,元素不渲染
v-show如果條件不成立,渲染,置display:none
v-cloak 如果頁面重新整理的太快,導致有些頁面的元素沒有加載出來,v-cloak

可以同步隱藏html程式碼

事件處理器

  • v-on:click="greet"@click="greet"
  • v-on:click.stop 阻止事件冒泡
    v-on:click.stop.prevent 阻止預設事件
    v-on:click.self 給這個div繫結事件的物件本身繫結事件?
    v-on:click.once給這個事件繫結一次
  • v-on:keyup.enter

路由

import HelloWorld from '@/components/HelloWorld' @ 表示 src 目錄

巢狀路由

路由index.js

import Vue from
'vue' import Router from 'vue-router' import GoodsList from '@/views/GoodsList' import Title from '@/views/Title' Vue.use(Router) export default new Router({ mode: 'history', routes: [{ path: '/goods', name: 'GoodsList', component: GoodsList, children: [{ path: 'title', name: 'title', component: Title }] }] })

views/GoodsList.vue

<template>
  <div>
      <p>這是商品列表頁</p>
      <router-link to="/goods/title">標題</router-link>
      <div>
          <router-view></router-view>
      </div>
  </div>
</template>
<style></style>
<script>
export default {
  data() {}
}
</script>

views/Title.vue

<template>
  <div>
      <p>這是商品標題元件</p>
  </div>
</template>
<style></style>
<script>
export default {
  data() {}
}
</script>

程式設計路由
通過js來實現頁面的跳轉

$router.push("name")
$router.push({path:"name"})
$router.push({path:"name?a=1234"})或$router.push({path:"name",query:{a:1234}})

… …

AMD CMD CommonJS和ES6的對比

  • AMD是RequireJS在推廣過程中對模組定義的規範化產出。非同步模組定義,特點:依賴前置
define(['package/lab'],function(lab){
    function foo(){
        console.log("hello world")
    }

    return {
        foo:foo
    };
});
  • CMD是SeaJS在推廣過程中對模組定義的規範化產出。同步模組定義,特點:即用即調
define(function(require, exports, module){
    var $ = require("jquery")
    var Spinning = require("./spinning")
});
  • CommonJS規範 - module.exports 在服務端使用,在服務端進行模組劃分
exports.area = function (r) {
    return Math.PI * r * r;
};

exports.circumference = function (r) {
    return 2 * Math.PI * r;
};
  • ES6特性 export/import
export default {
  name: 'HelloWorld',
  data () {
    return {
      num:10,
      msg: 'Welcome to Your Vue.js App'
    }
  },
  methods:{
    increment () {
      this.num++;
    },
    decrement () {
      this.num--;
    }
  },
  components:{
    Counter
  }

}

node.js

  • http
  • module
  • path
  • url util …

其他

express的router通過get與POST傳遞引數時,後端獲取引數的方式的區別

  • GET 通過req.param("param1")的方式獲取
  • POST 通過req.body.param1的方式獲取

前端傳參的區別

  • GET
axios.get('/path',{
  params:{
    key:value
  }
}).then((res)=>{

  });
  • POST
axios.post('/path',{
  key:value
}).then((res)=>{

  });

踩坑

  • js物件的語法易錯

var param = {
    userName: req.body.userName,
    userPwd: req.body.userPwd
}

不是

var param = {
    userName = req.body.userName,
    userPwd = req.body.userPwd
}
  • 請求的回撥函式引數的順序是 (req, res, next),不是(res, req, next)

錯誤總結

Error: spawn cmd ENOENT

很明顯了,錯誤資訊都給出了 cmd 關鍵詞,我一開始一直以為是node的版本的問題,特地把版本降到了7.0,錯誤的參考了github上關於這個問題的討論 升級Node.js 8 之後,npm run dev 會出現問題
為此我還學會了如何解除安裝高版本的node,再裝回舊版本的。要解除安裝高版本的node,有一個辦法就是再重新點開這個版本的node安裝包,在安裝選項中選擇remove就可以解除安裝當前的node版本了,之後再裝其他低版本的node就都沒問題了
浪費了我很多時間,最後終於找到了解決辦法 Get ‘spawn cmd ENOENT’ when try to build Cordova application (event.js:85) 我按照連結裡的方法將C:\Windows\System32新增到環境變數path中就好了,點贊量高的答案果然很有用!

Vuex

專門為vue.js應用程式開發的狀態管理模式
構建中大型單頁面程式時,Vuex能夠更好的幫助我們在元件外部統一管理狀態

核心概念
State 唯一的資料來源、載體
Getters 通過getters可以派生出一些新的狀態
Mutations 唯一可以提交和改變狀態的,Vuex的store中的狀態的唯一提交方法
Actions 提交的是mutation,而不是直接變更的狀態,可以包含任意非同步操作
Modules 面對複雜的應用程式,當管理的狀態比較多時,需要將Vuex的store物件分割成模組(modules)

線上部署

後端和前端程式碼分開。使用nginx實現介面轉發,不會跨域
部署到線上時如果採用資料夾的形式,注意修改路徑配置config/index.js/中的assetsPublicPath為程式碼存放的資料夾,否則會找不到資原始檔的路徑

課程資源

相關推薦

vue全家+node+mongodb商城專案小結

配置檔案 index.js webpack.base.conf.js vue.js基礎語法 mustache語法:{{msg}} html賦值:v-html="" 繫結屬性:v-bind:id="" 使用表示式:{{ ok?'Yes:No' }}

專案Vue+node+後臺管理專案小結

序:本文主要分兩塊說:專案機制,具體用到的知識塊。   1. 專案機制 專案的原型以vue-cli為原型,進行專案的初步構建。專案以node.js服務和webpack打包機制為依託,將.vue檔案打包為瀏覽器可以識別的檔案。Node.js和webpack可以讓專案執行在開發環境,或者執行在線上

vue全家(Vue+Vue-router+Vuex+axios)(Vue+webpack專案實戰系列之二)

  一、Vue   系列一已經用vue-cli搭建了Vue專案,此處就不贅述了。 二、Vue-router   Vue的路由,先獻上文件(https://router.vuejs.org/zh-cn/)。   路由在全家桶裡面定位是什麼呢,建立單頁應用!簡單!

Vue全家+Egg從0開發大型專案(一)搭建專案

前言 因為要開發本科畢設,做一個校友交流平臺,正好想記錄下整個開發過程,同時也分享給各位。當然那些需求調研的,前期設計的就省略啦。 專案大概是一個全棧的專案,使用的IDE是vscode(期間涉及一些外掛、配置推薦),大概的專案技術棧: vue + vue-router + vuex + vue-i

vue全家(一) 使用 vue-cli 構建專案

一.安裝node.js 進入node.js官網 https://nodejs.org/en/download/ ,選擇對應安裝包,版本建議8.0以上。 node.js安裝完了,npm也就安裝完了。 鍵盤按下【win+R】鍵,輸入cmd,然後回車,開啟cm

vue全家專案搭建

想到哪補充到哪 移動端ui框架-vux,安裝過程如官網所示,注意一定要安裝vux-loader,接著在config/webpack.base.conf.js中進行vux-loader的配置,首先引入vux-loader const vuxLoader = r

基於 vue 全家的 spa 專案模板

專案簡介 最近在給團隊做前端技術改造,移動端方面主要使用 vue2.0 重構,這是基於 vue-cli 腳手架生成專案模板。我們做了一些改造, 加入了 vue-router ,vuex 等配套設施,本地 dev server 中加入了介面 mock 功能

專案- Vue全家實戰去哪網App

最近在學習Vue,花了幾天時間跟著做了這個專案,算是對學習Vue入門的一個總結,歡迎同學們star 去哪網APP 基於 Vue 全家桶 (2.x) 製作的 去哪網APP專案,專案完整、功能完備、UI美觀、互動一流。 技術棧

構建vue全家專案-構建

請按如下步驟操作 1.安裝node,下載node並安裝2.檢查node與npm版本資訊開啟命令列 windows+R node -v  檢查node版本 npm -version 檢查npm版本

Vue全家開發專案

專案簡介:這個專案是國人開發,仿網易雲音樂,使用 Vue 全家桶開發的 webApp,也就是部署之後,可以通過手機訪問頁面,樣子還

Vue 全家 + Express 實現的博客(後端API全部自己手寫)

vue express node mysql vuex 為什麽學習並使用Vue1.發展趨勢最近這幾年的前端圈子,由於戲臺一般精彩紛呈,從 MVC 到 MVVM,你剛唱罷我登場。 backbone,AngularJS 已成昨日黃花,reactjs 如日中天,同時另一更輕量的 vue 發展勢頭

搭建vue全家

靜態頁 light -- vue ack sas nbsp sass log 1、直接利用vue-cli腳手架快速搭建 (1)全局安裝vue-cli npm install -g vue-cli (2)創建項目 vue init webpack-simple my-

從零開始系列之vue全家(3)安裝使用vuex

info 獲取 clas from 顯示 共享 安裝 default 重要 什麽是vuex? vuex:Vue提供的狀態管理工具,用於同一管理我們項目中各種數據的交互和重用,存儲我們需要用到數據對象。 即data中屬性同時有一個或幾個組件同時使用,就是data中共用的屬性。

從零開始系列之vue全家(4)帶新手小白一起搭建第一個個人網站項目

轉載 個人網站 rfi red nbsp oot ott osx 全部 未經允許,嚴禁轉載,全文由blackchaos提供。 在安裝好了前面大部分需要的插件,我們開始進行第一個個人項目。結合vue+vuex+vue-cli+vue-router+webpack使用。

已配置好的vue全家項目router,vuex,api,axios,vue-ls,async

vuejsgithub 地址: https://github.com/liangfengbo/vue-cli-project 點擊進入 vue-cli-project 已構建配置好的vuejs全家桶項目,統一管理後端接口 | 獲取數據 | 請求數據,已包含vue-router,vuex,api,axios.

項目- Vue全家實戰去哪網App

.org 編譯 script image 項目上線 str 用戶 設計 fastclick 最近在學習Vue,花了幾天時間跟著做了這個項目,算是對學習Vue入門的一個總結,歡迎同學們star 去哪網APP ?? 項目演示地址:http://118.25.39.84 基於

2018最新Vue全家+SSR+Koa2全棧開發美團網

第1章 課程導學這門課主講以Vue SSR+Koa2全棧技術為目標,最終實現美團網專案。本章節旨在告訴大家我們會用到哪些技能、教學方法、課程內容分佈、學習方法等。備註:我們會涉及Vue2.5、Nuxt、Koa2、element-ui、Mongodb等1-1 課程導學第2章 Vue基礎知識整個SSR部分都是用的

Vue全家+SSR+Koa2全棧開發美團網實戰資料

Vue全家桶+SSR+Koa2全棧開發美團網 Vue全家桶+SSR+Koa2全棧開發美團網 獲取資源新增qq+2100776785    新增時請備註    美團 獲取資源新增qq+2100776785    新增時請備註 &n

前端工程師晉升課程 Vue全家+SSR+Koa2全棧開發美團網

第1章 課程導學這門課主講以Vue SSR+Koa2全棧技術為目標,最終實現美團網專案。本章節旨在告訴大家我們會用到哪些技能、教學方法、課程內容分佈、學習方法等。備註:我們會涉及Vue2.5、Nuxt、Koa2、element-ui、Mongodb等 1-1 課程導學第2章 Vue基礎知識整個SSR部分都是

2018最全Vue全家+SSR+Koa2全棧開發美團網

第1章 課程導學這門課主講以Vue SSR+Koa2全棧技術為目標,最終實現美團網專案。本章節旨在告訴大家我們會用到哪些技能、教學方法、課程內容分佈、學習方法等。備註:我們會涉及Vue2.5、Nuxt、Koa2、element-ui、Mongodb等1-1 課程導學第2章 Vue基礎知識整個S