1.搭建vue的开发环境:

1.必须要安装node.js

2.安装vue的脚手架工具 官方命令行工具

  1. npm install --global vue-cli

3.新建项目

  1. vue init webpack-simple gw

然后一直回车,新建完成后,cd到gw目录下,执行

  1. cnpm install

4.运行项目

  1. npm run dev

运行成功后,可以通过访问

  1. http://localhost:8080/

2.vue路由

vue路由的意思就是不用手动挂载组件,实现动态挂载的方式

1.基础路由

1. 安装vue-router

  1. cnpm install vue-router --save

2.在src/main.js中

  1. import Vue from 'vue'
  2. import App from './App.vue'
  3.  
  4. import VueRouter from 'vue-router';
  5. Vue.use(VueRouter);
  6.  
  7. //1.创建组件
  8. import Home from './components/Home.vue';
  9. import New from './components/New.vue';
  10.  
  11. //2.配置路由
  12. const routes=[
  13. {path:'/home',component:Home},
  14. {path:'/news',component:New},
  15. {path:'*',redirect:'/home'}
  16. ]
  17.  
  18. //3.实例化VueRouter
  19. const router=new VueRouter({
  20. routes
  21. })
  22.  
  23. //4.挂载路由
  24. new Vue({
  25. el: '#app',
  26. router,
  27. render: h => h(App)
  28. })
  29.  
  30. //5.在根组件App.vue的模板中,放入<router-view></router-view>

3.在src/App.vue中

  1. <template>
  2. <div id="app">
  3. <router-view></router-view>
  4. </div>
  5. </template>
  6.  
  7. <script>
  8. export default {
  9. name: 'app',
  10. data () {
  11. return {
  12. msg:'你好'
  13. }
  14. }
  15. }
  16. </script>
  17. <style>
  18. </style>

4.重新运行项目,访问:

  1. http://localhost:8080/#/home
  2. http://localhost:8080/#/news

即可看到两个组件被挂载了。

2.路由跳转

1.通过标签跳转

1.在src/App.vue的模板中加入router-link

  1. <template>
  2. <div id="app">
  3. <router-link to="/home">首页</router-link>
  4. <router-link to="/news">新闻</router-link>
  5.  
  6. <hr>
  7. <router-view></router-view>
  8.  
  9. </div>
  10. </template>
  11.  
  12. <script>
  13. export default {
  14. name: 'app',
  15. data () {
  16. return {
  17. msg:'你好'
  18. }
  19. }
  20. }
  21. </script>
  22. <style>
  23. </style>

2.通过js跳转

1.在src/components/Home.vue中

  1. <template>
  2. <div>
  3. <h2>这是一个首页组件</h2>
  4. <v-header></v-header>
  5. <button @click="goNews()">通过js跳转到新闻页面</button>
  6. </div>
  7. </template>
  8. <script>
  9. export default {
  10. methods:{
  11. goNews(){
  12. this.$router.push({path:'/news'})
  13. }
  14. }
  15. }
  16. </script>
  17. <style>
  18.  
  19. </style>

3.父子路由

1.在src/components目录下新建User.vue文件,同时再新建User目录,在User目录下新建UserAdd.vue和UserList.vue两个文件

User.vue

  1. <template>
  2. <div id="user">
  3. <div class="user">
  4. <div class="left">
  5. <ul>
  6. <li>
  7.  
  8. <router-link to="/user/useradd">增加用户</router-link>
  9. </li>
  10. <li>
  11.  
  12. <router-link to="/user/userlist">用户列表</router-link>
  13. </li>
  14. </ul>
  15. </div>
  16. <div class="right">
  17. <router-view></router-view>
  18. </div>
  19.  
  20. </div>
  21.  
  22. </div>
  23. </template>
  24. <script>
  25. export default {
  26.  
  27. }
  28. </script>
  29. <style lang="scss" scoped>
  30. .user{
  31. display: flex;
  32. .left{
  33. width: 200px;
  34. min-height: 400px;
  35. border-right: 1px solid #eee
  36. }
  37. .right{
  38. flex: 1;
  39. }
  40. }
  41. </style>

UserAdd.vue

  1. <template>
  2. <div id="adduser">
  3. 用户增加
  4. </div>
  5. </template>

UserList.vue

  1. <template>
  2. <div id="userlist">
  3. 用户列表
  4. </div>
  5. </template>

3.在src/main.js中

  1. import Vue from 'vue'
  2. import App from './App.vue'
  3.  
  4. import VueRouter from 'vue-router';
  5. Vue.use(VueRouter);
  6.  
  7. //1.创建组件
  8. import Home from './components/Home.vue';
  9. import New from './components/New.vue';
  10. import User from './components/User.vue';
  11. import UserAdd from './components/User/UserAdd.vue';
  12. import UserList from './components/User/UserList.vue';
  13.  
  14. //2.配置路由
  15. const routes=[
  16. {path:'/home',component:Home},
  17. {path:'/news',component:New},
  18. {
  19. path:'/user',
  20. component:User,
  21. children:[
  22. {path:'useradd',component:UserAdd},
  23. {path:'userlist',component:UserList}
  24. ]
  25. },
  26. {path:'*',redirect:'/home'}
  27. ]
  28.  
  29. //3.实例化VueRouter
  30. const router=new VueRouter({
  31. // mode:'history',
  32. routes
  33. })
  34.  
  35. //4.挂载路由
  36. new Vue({
  37. el: '#app',
  38. router,
  39. render: h => h(App)
  40. })
  41.  
  42. //5.在根组件App.vue的模板中,放入<router-view></router-view>

4.路由模块化

1.在src目录下新建router目录,router目录下新建router.js

  1. import Vue from 'vue'
  2.  
  3. import VueRouter from 'vue-router';
  4. Vue.use(VueRouter);
  5.  
  6. //1.创建组件
  7. import Home from '../components/Home.vue';
  8. import New from '../components/New.vue';
  9. import User from '../components/User.vue';
  10. import UserAdd from '../components/User/UserAdd.vue';
  11. import UserList from '../components/User/UserList.vue';
  12.  
  13. //2.配置路由
  14. const routes=[
  15. {path:'/home',component:Home},
  16. {path:'/news',component:New},
  17. {
  18. path:'/user',
  19. component:User,
  20. children:[
  21. {path:'useradd',component:UserAdd},
  22. {path:'userlist',component:UserList}
  23. ]
  24. },
  25. {path:'*',redirect:'/home'}
  26. ]
  27.  
  28. //3.实例化VueRouter
  29. const router=new VueRouter({
  30. // mode:'history',
  31. routes
  32. })
  33.  
  34. export default router;
  35.  
  36. //5.在根组件App.vue的模板中,放入<router-view></router-view>

2.在src/main.js中

  1. import Vue from 'vue'
  2. import App from './App.vue'
  3.  
  4. import router from './router/router.js';
  5.  
  6. //4.挂载路由
  7. new Vue({
  8. el: '#app',
  9. router,
  10. render: h => h(App)
  11. })

3.element UI的使用

官网

  1. http://element-cn.eleme.io/#/zh-CN/component/installation

1.安装

  1. cnpm i element-ui -S //-S表示 --save

2.将配置代码引入main.js中

配置代码:

  1. import ElementUI from 'element-ui';
  2. import 'element-ui/lib/theme-chalk/index.css';
  3.  
  4. Vue.use(ElementUI);

main.js

  1. import Vue from 'vue'
  2. import App from './App.vue'
  3.  
  4. //elementsUI 的使用
  5. import ElementUI from 'element-ui';
  6. import 'element-ui/lib/theme-chalk/index.css';
  7.  
  8. Vue.use(ElementUI);
  9.  
  10. import VueRouter from 'vue-router';
  11. Vue.use(VueRouter);
  12.  
  13. //1.创建组件
  14. import Home from './components/Home.vue';
  15. import New from './components/New.vue';
  16. import User from './components/User.vue';
  17. import UserAdd from './components/User/UserAdd.vue';
  18. import UserList from './components/User/UserList.vue';
  19.  
  20. //2.配置路由
  21. const routes=[
  22. {path:'/home',component:Home},
  23. {path:'/news',component:New},
  24. {
  25. path:'/user',
  26. component:User,
  27. children:[
  28. {path:'useradd',component:UserAdd},
  29. {path:'userlist',component:UserList}
  30. ]
  31. },
  32. {path:'*',redirect:'/home'}
  33. ]
  34.  
  35. //3.实例化VueRouter
  36. const router=new VueRouter({
  37. // mode:'history',
  38. routes
  39. })
  40.  
  41. //4.挂载路由
  42. new Vue({
  43. el: '#app',
  44. router,
  45. render: h => h(App)
  46. })
  47.  
  48. //5.在根组件App.vue的模板中,放入<router-view></router-view>

3.配置webpack.config.js,加入字体配置代码

配置代码

  1. {
  2. test: /\.(eot|svg|ttf|woff|woff2)(\?\S*)?$/,
  3. loader: 'file-loader'
  4. },

webpack.config.js

  1. var path = require('path')
  2. var webpack = require('webpack')
  3.  
  4. module.exports = {
  5. entry: './src/main.js',
  6. output: {
  7. path: path.resolve(__dirname, './dist'),
  8. publicPath: '/dist/',
  9. filename: 'build.js'
  10. },
  11. module: {
  12. rules: [
  13. {
  14. test: /\.css$/,
  15. use: [
  16. 'vue-style-loader',
  17. 'css-loader'
  18. ],
  19. }, {
  20. test: /\.vue$/,
  21. loader: 'vue-loader',
  22. options: {
  23. loaders: {
  24. }
  25. // other vue-loader options go here
  26. }
  27. },
  28. {
  29. test: /\.js$/,
  30. loader: 'babel-loader',
  31. exclude: /node_modules/
  32. },
  33. {
  34. test: /\.(png|jpg|gif|svg)$/,
  35. loader: 'file-loader',
  36. options: {
  37. name: '[name].[ext]?[hash]'
  38. }
  39. },
  40. {
  41. test: /\.(eot|svg|ttf|woff|woff2)(\?\S*)?$/,
  42. loader: 'file-loader'
  43. }
  44.  
  45. ]
  46. },
  47. resolve: {
  48. alias: {
  49. 'vue$': 'vue/dist/vue.esm.js'
  50. },
  51. extensions: ['*', '.js', '.vue', '.json']
  52. },
  53. devServer: {
  54. historyApiFallback: true,
  55. noInfo: true,
  56. overlay: true
  57. },
  58. performance: {
  59. hints: false
  60. },
  61. devtool: '#eval-source-map'
  62. }
  63.  
  64. if (process.env.NODE_ENV === 'production') {
  65. module.exports.devtool = '#source-map'
  66. // http://vue-loader.vuejs.org/en/workflow/production.html
  67. module.exports.plugins = (module.exports.plugins || []).concat([
  68. new webpack.DefinePlugin({
  69. 'process.env': {
  70. NODE_ENV: '"production"'
  71. }
  72. }),
  73. new webpack.optimize.UglifyJsPlugin({
  74. sourceMap: true,
  75. compress: {
  76. warnings: false
  77. }
  78. }),
  79. new webpack.LoaderOptionsPlugin({
  80. minimize: true
  81. })
  82. ])
  83. }

然后重启项目,发现不报错了。

4.vuex

vuex是一个专门为vue.js应用程序开发的状态管理模式,解决不同组件之间的同一状态共享问题,数据共享问题,数据持久化

1.安装

  1. cnpm install vuex --save

2.在src目录下新建目录vuex,在vuex目录下新建store.js文件

  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3.  
  4. Vue.use(Vuex);
  5.  
  6. // 1.state在vuex中用于储存数据
  7. var state={
  8. count:1
  9. }
  10.  
  11. // 2.mutations里面放的是方法,方法主要内容用于改变state里面的数据
  12. var mutations={
  13. incCount(){
  14. ++state.count
  15. }
  16. }
  17.  
  18. // 实例化Vuex.store
  19. const store=new Vuex.Store({
  20. state,
  21. mutations:mutations
  22. })
  23.  
  24. export default store;

3.在src/components/Home.vue中使用

  1. <template>
  2. <div>
  3. <h2>这是一个首页组件</h2>
  4. <button @click="goNews()">通过js跳转到新闻页面</button>
  5. <!-- 3.使用 -->
  6. <h2>全局变量--{{this.$store.state.count}}</h2>
  7. <h2>{{this.i}}</h2>
  8. <button @click="addcount()">增加数量+</button>
  9. </div>
  10. </template>
  11. <script>
  12. // 1.引入store
  13. import store from '../vuex/store.js';
  14. // 2.注册
  15. export default {
  16. store,
  17. methods:{
  18. goNews(){
  19. this.$router.push({path:'/news'})
  20. },
  21.  
  22. addcount(){
  23. // 改变vuex.store里面的数据
  24.  
  25. this.$store.commit('incCount');
  26. }
  27. },
  28. data(){
  29. return{
  30. i:0
  31. }
  32. },
  33. mounted(){
  34. this.i=this.$store.state.count
  35. }
  36. }
  37. </script>
  38. <style>
  39.  
  40. </style>

5.使用iview

官网

  1. https://www.iviewui.com/docs/guide/install

1.安装

  1. cnpm install iview --save

2.在src/main.js加入

  1. import iView from 'iview'
  2. import 'iview/dist/styles/iview.css' // 使用 CSS
  3. Vue.use(iView)

3.配置webpack.config.js,加入字体配置代码

配置代码

  1. {
  2. test: /\.(eot|svg|ttf|woff|woff2)(\?\S*)?$/,
  3. loader: 'file-loader'
  4. },

webpack.config.js

然后重启项目,发现不报错了。

vue常用手册的更多相关文章

  1. vue 常用手册

    基本使用 引入vue.js 创建Vue对象, 指定选项对象 el : 指定dom标签容器的选择器 data : 指定初始化状态属性数据的对象对象/函数(返回一个对象) 页面中 使用v-model: 实 ...

  2. 超级有用的各类web常用手册

    以下是链接地址: 各种web常用手册

  3. Vue常用经典开源项目汇总参考-海量

    Vue常用经典开源项目汇总参考-海量 Vue是什么? Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的 ...

  4. vue常用

    vue常用的路由的状态管理

  5. 五、vue常用UI组件

    下面简单的总结下vue常用的一些UI 组件,有一些我也没怎么用过,这里先罗列出来,便于自己后面使用的时候查找方便,大家有更好的可以给我推荐哦~ vuex: vux github ui demo:htt ...

  6. (二)Vue常用7个属性

    学习vue我们必须之到它的7个属性,8个 方法,以及7个指令.787原则 el属性 用来指示vue编译器从什么地方开始解析 vue的语法,可以说是一个占位符. data属性 用来组织从view中抽象出 ...

  7. Vue常用语法及命令

    1,Vue常用语法 vue常用语法之变量的定义 // 1,变量相关 // 变量的提升 var username = "雪雪"; var username ; console.log ...

  8. Vue常用的GitHub项目

    Vue常用的GitHub项目(Demo案例) 应用实例 https://github.com/pagekit/pa... pagekit-轻量级的CMS建站系统 https://github.com/ ...

  9. vue常用的修饰符

    v-model修饰符 <template> <div id="demo14"> <p>-----------------模板语法之修饰符---- ...

随机推荐

  1. QT解析和组装json

    json这个小朋友熟悉又陌生,今天给同学们好好讲讲QT是如何使用json的,一句话:简单 1.什么是json? A:json就是个<key,value>字符串 ①一个json对象 {&qu ...

  2. mysql 将一个表中的数据复制到另一个表中,sql语句

    1.表结构相同的表,且在同一数据库(如,table1,table2) Sql :insert into table1 select * from table2 (完全复制) insert into t ...

  3. qt 打包发布 获取dll

    发布前,获取所有qt dll包命令 生成的程序运行正常之后,找到项目的生成目录,比如 项目源码路径: C:\QtPros\hellomw\它的项目生成目录是C:\QtPros\build-hellom ...

  4. SQLServer之触发器简介

    触发器定义 触发器是数据库服务器中发生事件时自动执行的一种特殊存储过程.SQLServer允许为任何特定语句创建多个触发器.它的执行不是由程序调用,也不是手工启动,而是由事件来触发,当对数据库进行操作 ...

  5. 【Python 01】Python可以做什么

    Python学习未来方向: 1.数据分析 2.自然语言处理 3.社交网络分析 4.人工智能 5.深度学习 6.计算机视觉 7.网络爬虫 8.量化交易

  6. 网络流 之 dinic算法

    我觉得这个dinic的算法和之前的增广路法差不多 .使用BFS对残余网络进行分层,在分层时,只要进行到汇点的层次数被算出即可停止, 因为按照该DFS的规则,和汇点同层或更下一层的节点,是不可能走到汇点 ...

  7. zabbix proxy部署

    一.概述 环境: 因为公司需要监控远程客户机,但server端无法主动连接agent端,客户端可以连接公司ip 公司有固定ip,可以开放某个端口给zabbixserver,客户机agent端可以主动通 ...

  8. DeeplabV3+ 训练自己的遥感数据

    一.预处理数据部分 1.创建 tfrecord(修改 deeplab\ dateasets\ build_data.py) 模型本身是把一张张 jpg 和 png 格式图片读到一个 Example 里 ...

  9. hadoop 集群 master datanode 没有启动

    2018-02-07 02:47:50,377 WARN org.apache.hadoop.hdfs.server.common.Storage: java.io.IOException: Inco ...

  10. Python之使用转义序列 \n 和 \t 跟 expandtabs 函数输出表格

    示例: text = "username\temail\tpassword\nashdfh\tfiodfh@q.com\ty567\nsdfiuh\tadfhisoj@163.com\t42 ...