很久沒上傳筆記了,主要最近的筆記都零零散散,知識點也不集中,就不傳了;最近項目想用到先後端分離,並且前端我也想參與下,就先基本的學一遍,記點零星的筆記,各位能從中看到有用的東西最好css
nodejs.cn
中文文檔地址var http = require("http")引入模塊 http.createServer(function(request,response){ response.writeHead(200,{'Content-Type':'text/plain'}); resposne.end('Hello world!'); }).listen(8888); cmd運行`node demo4` 製做模塊 exports.add=function(x,y){ return x+y; }
npm init
初始化工程,生成package.json,至關於maven中pomnpm install express
安裝模塊express
npm root -g
顯示全局目錄npm install jquery -g
,全局安裝package.json
時,須要npm install
下載對應的node_modules
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm -v
查看版本cnpm install
須要下載的js庫npm run dev
npm run build
cnpm install webpack -g
全局安裝cnpm install webpack-cli -g
命令包webpack -v
查看是否安裝完畢,安裝版本webpack
cnpm install style-loader css-loader --save-dev
https://code.visualstudio.com
vetur
,HTML Snippets
,HTML CSS Support
,Debugger for Chrome
,VueHelper
var
是全局的,let
做用域局部的const
,常量不可變let name = "bac";console.log('hello, ${name}')
function action(num = 200){ console.log(num) } action(); action(100);
function add(a,b){ return a+b; } console.log(add(100,200)); //ES6 add = (a,b) => { return a+b; } add = (a,b) => a+b;
// ES5 function people(name ,age){ return { name:name, age: age } } //ES6 function people(name, age){ return { name, age } }
//ES5 const people= { return { name:name, age: age } } const name = people.name; const age = people.age; //ES6 const {name ,age} = people; console.log(name); console.log(age);
const color = ['red','green']; const colorful =[...color,'pink']; const people = {name:'xyx',age:20}; const peopleful = {...people,address:'aaaa'}
let fn0=function(){ console.log('fne...'); } export {fn0}
//從某個js文件中導入某個模塊 import {fn0} from './lib'
node8 不支持import,能夠用require,不用import,或者用babel
的命令行工具來執行前端
cnpm install
,npm run dev
build
構建目錄,構建的相關配置config
配置目錄,須要修改config/dev.env.js
中的mock路徑,此處測試能夠用easyMock,生產則改config/prod.env.js
node_modules
經過cnpm install
安裝的依賴,不用本身寫src
主要的編寫目錄
src/api
編寫請求接口的封裝src/assets
靜態資源管理src/router
路由信息src/store
存儲全局信息方法src/styles
樣式信息src/utils
工具方法src/views
視圖信息,須要着重修改的地方src/App.vue
全局視圖基本框架src/main.js
主入口,實例化Vuepackage.json
打包文件,通常不用修改template
中,<router-view/>
用來代表須要路由的標籤區域<router-link to="/" >首頁</router-link>
表示路由鏈接地址,鏈接到另外一個模板import Vue from 'vue' import Router from 'vue-router' import HelloWorld from '@/components/HelloWorld' import List from '@/components/list' import Item from '@/components/item' Vue.use(Router) export default new Router({ routes: [ { path: '/', name: 'HelloWorld', component: HelloWorld }, { path: '/list', name: 'List', component: List }, { path: '/item/:id', name: 'Item', component: Item } ] })
# 建立一個基於 webpack 模板的新項目 vue init webpack vuexdemo # 安裝依賴,走你 cd vuexdemo cnpm install --save vuex npm run dev
import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const store = new Vuex.Store({ state: { count: 0 } }) export default store
import Vue from 'vue' import App from './App' import router from './router' import store from './store' Vue.config.productionTip = false new Vue({ el: '#app', router, store, components: { App }, template: '<App/>' })
const store = new Vuex.Store({ state: { count: 0 }, mutations: { increment(state){ state.count++ } } })
this.$store.commit('increment')
mutations: { increment (state,x) { state.count += x } }
this.$store.commit('increment',10)
mutation
,能夠包含任意異步操做mutations: { increment(state,x){ state.count+=x } }, actions: { increment(context,x){ context.commit('increment',x) } }
this.$store.dispatch('increment')
因此vue
key | 方法 |
---|---|
mutations | $store.commit('increment') |
actions | $store.dispatch('increment') |
{{$store.getters.remark}}
getters: { remark(s){ if(s.count<50){ return '加油' }else if(s.count<100){ return '你真棒' }else{ return '你是大神' } } }
...
,好比item是一個對象,下列表示item中加了個屬性count{ ...item, count:0 }