首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >vue常用手册

vue常用手册

作者头像
玩蛇的胖纸
发布于 2018-12-25 06:59:28
发布于 2018-12-25 06:59:28
9470
举报

1.搭建vue的开发环境:

1.必须要安装node.js

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

代码语言:javascript
AI代码解释
复制
npm install --global vue-cli

3.新建项目

代码语言:javascript
AI代码解释
复制
vue init webpack-simple gw

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

代码语言:javascript
AI代码解释
复制
cnpm install

4.运行项目

代码语言:javascript
AI代码解释
复制
npm run dev

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

代码语言:javascript
AI代码解释
复制
http://localhost:8080/

2.vue路由

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

1.基础路由

  1. 安装vue-router

代码语言:javascript
AI代码解释
复制
cnpm install vue-router --save

2.在src/main.js中

代码语言:javascript
AI代码解释
复制
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中

代码语言:javascript
AI代码解释
复制
<template>
  <div id="app">
     <router-view></router-view>
  </div>
</template>

<script>
export default {
  name: 'app',
  data () {
    return {
      msg:'你好'
    }
  }    
}
</script>
<style>
</style>

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

代码语言:javascript
AI代码解释
复制
http://localhost:8080/#/home
http://localhost:8080/#/news

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

2.路由跳转

1.通过标签跳转

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

代码语言:javascript
AI代码解释
复制
<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>

 2.通过js跳转

1.在src/components/Home.vue中

代码语言:javascript
AI代码解释
复制
<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>

3.父子路由

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

User.vue

代码语言:javascript
AI代码解释
复制
<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

代码语言:javascript
AI代码解释
复制
<template>
    <div id="adduser">
        用户增加
    </div>
</template>

UserList.vue

代码语言:javascript
AI代码解释
复制
<template>
    <div id="userlist">
        用户列表
    </div>
</template>

3.在src/main.js中

代码语言:javascript
AI代码解释
复制
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>

4.路由模块化

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

代码语言:javascript
AI代码解释
复制
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中

代码语言:javascript
AI代码解释
复制
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)
})

3.element UI的使用

官网

代码语言:javascript
AI代码解释
复制
http://element-cn.eleme.io/#/zh-CN/component/installation

1.安装

代码语言:javascript
AI代码解释
复制
cnpm i element-ui -S  //-S表示 --save

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

配置代码:

代码语言:javascript
AI代码解释
复制
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.use(ElementUI);

main.js

代码语言:javascript
AI代码解释
复制
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,加入字体配置代码

配置代码

代码语言:javascript
AI代码解释
复制
{
        test: /\.(eot|svg|ttf|woff|woff2)(\?\S*)?$/,
        loader: 'file-loader'
      },

webpack.config.js

代码语言:javascript
AI代码解释
复制
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
    })
  ])
}

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

 4.vuex

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

1.安装

代码语言:javascript
AI代码解释
复制
cnpm install vuex --save

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

代码语言:javascript
AI代码解释
复制
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中使用

代码语言:javascript
AI代码解释
复制
<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>

 5.使用iview

官网

代码语言:javascript
AI代码解释
复制
http://v1.iviewui.com/components/carousel

1.安装

代码语言:javascript
AI代码解释
复制
cnpm install  iview  --save

2.在src/main.js加入

代码语言:javascript
AI代码解释
复制
import iView from 'iview'
import 'iview/dist/styles/iview.css'    // 使用 CSS
Vue.use(iView)

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

配置代码

代码语言:javascript
AI代码解释
复制
{
        test: /\.(eot|svg|ttf|woff|woff2)(\?\S*)?$/,
        loader: 'file-loader'
      },

webpack.config.js

代码语言:javascript
AI代码解释
复制
View Code

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-12-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
21.路由模块化
在项目目录下新建目录router,在目录router目录下新建router.js,然后引用vue
玩蛇的胖纸
2019/10/21
4740
后端 学习 前端 Vue 框架基础知识
里面放入定义好的数据,data:{name:“”,list:[{id:“”,name:“”}]},全部都写成json格式的
RAIN7
2022/10/04
2.1K0
后端 学习 前端 Vue 框架基础知识
Vue学习-Vue router
在配置Vue-router时有两种模式,分别为:hash模式(默认)、history模式。
花猪
2022/02/17
4.7K0
Vue学习-Vue router
08Vue.js快速入门-Vue综合实战项目
8.1. 前置知识学习 npm 学习 官方文档 推荐资料 npm入门 npm介绍 需要了解的知识点 package.json 文件相关配置选项 npm 本地安装、全局安装、本地
老马
2018/01/05
1.5K0
17. vue-route详细介绍
说道路由, 我们最熟悉的路由是什么呢? 那就是路由器了。 其实路由器有两个重要的功能: 路由和传送
用户7798898
2021/04/09
5.7K0
17. vue-route详细介绍
vuejs之vue和springboot后端进行通信
main.js:Vue.config.productionTip用于切换是生产环境还是开发环境。这里创建Vue对象的时候同时关联上了App.vue中的id名为app的div标签。引入路由router的js文件以及存储数据的store。
西西嘛呦
2020/08/26
1.3K0
Vue + ElementUI 集成 Vue Router
最新写 Vue 项目使用 ElementUI 做前端, 然后需要集成一个 vue Router, 主要功能是侧边栏不刷新而内容刷新, 看了几个 starter 都和需求不太一样, 因此干脆自己搞一个
szhshp
2022/09/21
5210
18.路由的嵌套
1.在components目录下新建目录User,目录下新建两个组件AddUser.vue和UserList.vue AddUser.vue <template> <div> <h2>{{msg}}</h2> </div> </template> <script> export default { name: 'home', data () { return { msg:'增加用户' } }, methods:{
玩蛇的胖纸
2019/10/21
8730
Vue路由vue-router
Vue Router 是 Vue.js 官方的路由管理器 github: https://github.com/vuejs/vue-router 中文官方网站https://router.vuejs.org/zh/ 安装vue-router
羊羽shine
2019/06/25
1.1K0
Vue路由vue-router
Vue之Router(二)
  为什么会有动态路由呢?因为在一般的项目中,都会涉及到用户登陆的操作,我们希望某某用户登陆某个网页的时候,能够在该网页的UURL地址上显示用户的登录名或者用户ID等的信息。 动态路由就是根据不同的用户将在网页的URL中动态追加登录名或者ID等信息。 比如:
yuanshuai
2022/08/22
8490
Vue之Router(二)
(23)打鸡儿教你Vue.js
Webpack 目前无论在求职还是工作中,使用越来越普及。而想要学懂,学会Webpack更绝非易事。
达达前端
2019/07/04
6350
(23)打鸡儿教你Vue.js
Vue Router详细教程
1.什么是路由 1.1路由简介 说起路由你想起了什么?路由是一个网络工程里面的术语。 路由(routing)就是通过互联的网络把信息从源地址传输到目的地址的活动。 --- 维基百科 额,啥玩意?
说故事的五公子
2020/08/10
3.9K0
Vue Router详细教程
Vue3.0商店后台管理系统项目实战-路由
侧边栏导航 vue3搭配Element Plus框架使用 Element Plus基于 Vue 3,面向设计师和开发者的组件库 文档:https://element-plus.gitee.io/zh-CN/
王小婷
2022/10/28
8210
Vue3.0商店后台管理系统项目实战-路由
Vue在webpack中使用vue-router
Vue在webpack中使用vue-router 先安装Vue-router npm i vue-router vue-router官网 导入路由模块: import VueRouter from 'vue-router' 安装路由模块: Vue.use(VueRouter); 导入需要展示的组件: import login from './components/account/login.vue' import register from './components/account/register.v
Dream城堡
2018/12/12
5760
Vue-router 学习笔记
在以前,前后端是不分离的,这个阶段通常是由服务端渲染好页面(SSR),再发送页面给前端去展示;接着到了前后端分离的阶段,前端向静态资源服务器拿资源,再通过 js 渲染页面,此时仍然是一个 url 对应一份 html+css+js。再后来出现了 SPA 单页面应用的概念,实际上它只有一个页面,但给我们的体验是多页面之间的切换。
Chor
2019/11/18
7540
15.vue中的路由vue-router
npm install vue-router --save / cnpm install vue-router --save
玩蛇的胖纸
2019/10/21
6360
15.vue中的路由vue-router
重学巩固你的Vuejs(下)
置身世外只为暗中观察!!!Hello大家好,我是魔王哪吒!重学巩固你的Vuejs知识体系,如果有哪些知识点遗漏,还望在评论中说明,让我可以及时更新本篇内容知识体系。欢迎点赞收藏!
达达前端
2020/10/29
2.2K0
Vue 08.webpack中使用.vue组件
注意:不能使用npm下载,需要从 github 上下载现成的包并解压,然后拷贝到项目中使用
LittlePanger
2020/04/14
1.3K0
Vue官网开发实践:从零开始构建一个现代化的单页应用
在阅读这篇文章前,推荐一篇“好”文章:【鸿蒙技术分享:探索 HarmonyOS 开发之旅】
lyushine
2024/11/26
5560
vue-router基本使用
 路由,其实就是指向的意思,当我点击页面上的home  按钮时,页面中就要显示home的内容,如果点击页面上的about 按钮,页面中就要显示about 的内容。Home按钮  => home 内容, about按钮 => about 内容,也可以说是一种映射。 所以在页面显示中,有两个部分,一个是需要点击的部分,一个是点击之后,显示点击内容的部分。    点击之后,怎么做到正确的对应,比如,我点击home 按钮,页面中怎么才能显示home的内容。这就要在js 文件中配置路由。   路由中有三个基本的概念
大当家
2018/06/28
1.1K0
相关推荐
21.路由模块化
更多 >
交个朋友
加入腾讯云官网粉丝站
双11活动抢先看 更有社群专属礼券掉落
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档