1.必需要安裝node.jscss
2.安裝vue的腳手架工具 官方命令行工具html
npm install --global vue-cli
3.新建項目vue
vue init webpack-simple gw
而後一直回車,新建完成後,cd到gw目錄下,執行node
cnpm install
4.運行項目webpack
npm run dev
運行成功後,能夠經過訪問web
http://localhost:8080/
1. 安裝vue-routervue-router
cnpm install vue-router --save
2.在src/main.js中vuex
import Vue from 'vue' import App from './App.vue' import VueRouter from 'vue-router'; Vue.use(VueRouter); //1.建立組件 import Home from './components/Home.vue'; import New from './components/New.vue'; //2.配置路由 const routes=[ {path:'/home',component:Home}, {path:'/news',component:New}, {path:'*',redirect:'/home'} ] //3.實例化VueRouter const router=new VueRouter({ routes }) //4.掛載路由 new Vue({ el: '#app', router, render: h => h(App) }) //5.在根組件App.vue的模板中,放入<router-view></router-view>
3.在src/App.vue中vue-cli
<template> <div id="app"> <router-view></router-view> </div> </template> <script> export default { name: 'app', data () { return { msg:'你好' } } } </script> <style> </style>
4.從新運行項目,訪問:npm
http://localhost:8080/#/home
http://localhost:8080/#/news
便可看到兩個組件被掛載了。
1.在src/App.vue的模板中加入router-link
<template> <div id="app"> <router-link to="/home">首頁</router-link> <router-link to="/news">新聞</router-link> <hr> <router-view></router-view> </div> </template> <script> export default { name: 'app', data () { return { msg:'你好' } } } </script> <style> </style>
1.在src/components/Home.vue中
<template> <div> <h2>這是一個首頁組件</h2> <v-header></v-header> <button @click="goNews()">經過js跳轉到新聞頁面</button> </div> </template> <script> export default { methods:{ goNews(){ this.$router.push({path:'/news'}) } } } </script> <style> </style>
1.在src/components目錄下新建User.vue文件,同時再新建User目錄,在User目錄下新建UserAdd.vue和UserList.vue兩個文件
User.vue
<template> <div id="user"> <div class="user"> <div class="left"> <ul> <li> <router-link to="/user/useradd">增長用戶</router-link> </li> <li> <router-link to="/user/userlist">用戶列表</router-link> </li> </ul> </div> <div class="right"> <router-view></router-view> </div> </div> </div> </template> <script> export default { } </script> <style lang="scss" scoped> .user{ display: flex; .left{ width: 200px; min-height: 400px; border-right: 1px solid #eee } .right{ flex: 1; } } </style>
UserAdd.vue
<template> <div id="adduser"> 用戶增長 </div> </template>
UserList.vue
<template> <div id="userlist"> 用戶列表 </div> </template>
3.在src/main.js中
import Vue from 'vue' import App from './App.vue' import VueRouter from 'vue-router'; Vue.use(VueRouter); //1.建立組件 import Home from './components/Home.vue'; import New from './components/New.vue'; import User from './components/User.vue'; import UserAdd from './components/User/UserAdd.vue'; import UserList from './components/User/UserList.vue'; //2.配置路由 const routes=[ {path:'/home',component:Home}, {path:'/news',component:New}, { path:'/user', component:User, children:[ {path:'useradd',component:UserAdd}, {path:'userlist',component:UserList} ] }, {path:'*',redirect:'/home'} ] //3.實例化VueRouter const router=new VueRouter({ // mode:'history', routes }) //4.掛載路由 new Vue({ el: '#app', router, render: h => h(App) }) //5.在根組件App.vue的模板中,放入<router-view></router-view>
1.在src目錄下新建router目錄,router目錄下新建router.js
import Vue from 'vue' import VueRouter from 'vue-router'; Vue.use(VueRouter); //1.建立組件 import Home from '../components/Home.vue'; import New from '../components/New.vue'; import User from '../components/User.vue'; import UserAdd from '../components/User/UserAdd.vue'; import UserList from '../components/User/UserList.vue'; //2.配置路由 const routes=[ {path:'/home',component:Home}, {path:'/news',component:New}, { path:'/user', component:User, children:[ {path:'useradd',component:UserAdd}, {path:'userlist',component:UserList} ] }, {path:'*',redirect:'/home'} ] //3.實例化VueRouter const router=new VueRouter({ // mode:'history', routes }) export default router; //5.在根組件App.vue的模板中,放入<router-view></router-view>
2.在src/main.js中
import Vue from 'vue' import App from './App.vue' import router from './router/router.js'; //4.掛載路由 new Vue({ el: '#app', router, render: h => h(App) })
官網
http://element-cn.eleme.io/#/zh-CN/component/installation
1.安裝
cnpm i element-ui -S //-S表示 --save
2.將配置代碼引入main.js中
配置代碼:
import ElementUI from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; Vue.use(ElementUI);
main.js
import Vue from 'vue' import App from './App.vue' //elementsUI 的使用 import ElementUI from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; Vue.use(ElementUI); import VueRouter from 'vue-router'; Vue.use(VueRouter); //1.建立組件 import Home from './components/Home.vue'; import New from './components/New.vue'; import User from './components/User.vue'; import UserAdd from './components/User/UserAdd.vue'; import UserList from './components/User/UserList.vue'; //2.配置路由 const routes=[ {path:'/home',component:Home}, {path:'/news',component:New}, { path:'/user', component:User, children:[ {path:'useradd',component:UserAdd}, {path:'userlist',component:UserList} ] }, {path:'*',redirect:'/home'} ] //3.實例化VueRouter const router=new VueRouter({ // mode:'history', routes }) //4.掛載路由 new Vue({ el: '#app', router, render: h => h(App) }) //5.在根組件App.vue的模板中,放入<router-view></router-view>
3.配置webpack.config.js,加入字體配置代碼
配置代碼
{ test: /\.(eot|svg|ttf|woff|woff2)(\?\S*)?$/, loader: 'file-loader' },
webpack.config.js
var path = require('path') var webpack = require('webpack') module.exports = { entry: './src/main.js', output: { path: path.resolve(__dirname, './dist'), publicPath: '/dist/', filename: 'build.js' }, module: { rules: [ { test: /\.css$/, use: [ 'vue-style-loader', 'css-loader' ], }, { test: /\.vue$/, loader: 'vue-loader', options: { loaders: { } // other vue-loader options go here } }, { test: /\.js$/, loader: 'babel-loader', exclude: /node_modules/ }, { test: /\.(png|jpg|gif|svg)$/, loader: 'file-loader', options: { name: '[name].[ext]?[hash]' } }, { test: /\.(eot|svg|ttf|woff|woff2)(\?\S*)?$/, loader: 'file-loader' } ] }, resolve: { alias: { 'vue$': 'vue/dist/vue.esm.js' }, extensions: ['*', '.js', '.vue', '.json'] }, devServer: { historyApiFallback: true, noInfo: true, overlay: true }, performance: { hints: false }, devtool: '#eval-source-map' } if (process.env.NODE_ENV === 'production') { module.exports.devtool = '#source-map' // http://vue-loader.vuejs.org/en/workflow/production.html module.exports.plugins = (module.exports.plugins || []).concat([ new webpack.DefinePlugin({ 'process.env': { NODE_ENV: '"production"' } }), new webpack.optimize.UglifyJsPlugin({ sourceMap: true, compress: { warnings: false } }), new webpack.LoaderOptionsPlugin({ minimize: true }) ]) }
而後重啓項目,發現不報錯了。
vuex是一個專門爲vue.js應用程序開發的狀態管理模式,解決不一樣組件之間的同一狀態共享問題,數據共享問題,數據持久化
1.安裝
cnpm install vuex --save
2.在src目錄下新建目錄vuex,在vuex目錄下新建store.js文件
import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex); // 1.state在vuex中用於儲存數據 var state={ count:1 } // 2.mutations裏面放的是方法,方法主要內容用於改變state裏面的數據 var mutations={ incCount(){ ++state.count } } // 實例化Vuex.store const store=new Vuex.Store({ state, mutations:mutations }) export default store;
3.在src/components/Home.vue中使用
<template> <div> <h2>這是一個首頁組件</h2> <button @click="goNews()">經過js跳轉到新聞頁面</button> <!-- 3.使用 --> <h2>全局變量--{{this.$store.state.count}}</h2> <h2>{{this.i}}</h2> <button @click="addcount()">增長數量+</button> </div> </template> <script> // 1.引入store import store from '../vuex/store.js'; // 2.註冊 export default { store, methods:{ goNews(){ this.$router.push({path:'/news'}) }, addcount(){ // 改變vuex.store裏面的數據 this.$store.commit('incCount'); } }, data(){ return{ i:0 } }, mounted(){ this.i=this.$store.state.count } } </script> <style> </style>
官網
https://www.iviewui.com/docs/guide/install
1.安裝
cnpm install iview --save
2.在src/main.js加入
import iView from 'iview' import 'iview/dist/styles/iview.css' // 使用 CSS Vue.use(iView)
3.配置webpack.config.js,加入字體配置代碼
配置代碼
{ test: /\.(eot|svg|ttf|woff|woff2)(\?\S*)?$/, loader: 'file-loader' },
webpack.config.js
而後重啓項目,發現不報錯了。