Vue从0到1快速搭建

简介: Vue从0到1快速搭建

 下载Vue脚手架

1、进入cmd

打开vue保存路径,进入对应的cmd页面image.gif编辑

2、下载脚手架

输入npm install -g @vue/cliimage.gif编辑

3、配置淘宝仓库镜像

npm config set registry https://registry.npmmirror.com

image.gif

创建Vue项目

1、进入cmd页面

打开vue项目保存路径,进入cmd页面,输入vue create [项目名]image.gif编辑

2、选择vue的版本

image.gif编辑

3、选择插件

选择需要的插件,按空格取消或选中

image.gif编辑

4、选择版本

选择版本,选3 (Element组件对vue3不适配,需要vue2版本)

image.gif编辑

5、保存位置

依赖的保存位置

image.gif编辑

6、创建快照

以上的选择要不要做一个快照,方便下次创建,输入一个大写的N不保存即可

image.gif编辑

7、下载

接下来会联网下载所选择的内容以及vue相关的程序,加载完以后本地就会出现创建的hello项目

image.gif编辑

vue基本项目模型

<template>
    <div>
    <!--这是页面显示模块-->
    </div>
</template>
<script>
// 这个位置可以导入组件(这是局部导入)
export default {
    data:function(){
        return{
      // 定义属性的模块
        }
    },
    created:function(){
    // 这是一个生命周期,创建时候执行
    },
    mounted:function(){
    // 这是一个生命周期,创建生命周期执行之后执行
        // 其余生命周期,可以去vue官网查看
    },
    methods:{
    // 自定义方法的模块
    },
    comments:{
        // 注册组件的容器
    }
}
</script>
<style>
  /*这是css模块*/
</style>

image.gif

自定义组件导入

注册完容器以后即可使用

<template>
  <div id="app">
     <!--自定义组件-->
    <NewTable></NewTable> 
  </div>
</template>
<script>
import NewTable from './components/NewTable.vue'; // 第一步:导入路径
export default {
  components: {
    NewTable  // 第二步:注册容器,定义组件名称  大小写保持一直
  }
}
</script>
<style>
</style>

image.gif

补全插件

缺失的组件,在控制终端输入npm install,就会根据package. json重新下载自动下载缺失的组件

添加Element组件

1、组件描述

Element组件是一个快速搭建网络前端界面的组件

2、下载组件

在控制终端输入npm install element-ui,就会自动下载Element组件

访问组件的网络链接:

3、引入主键,全局注册

在main.js中进行配置

import Vue from 'vue'
import App from './App.vue'
import ElementUI from 'element-ui'; // 第一步:导入element-ui
import 'element-ui/lib/theme-chalk/index.css';  // 第一步:导入element自带的css
Vue.config.productionTip = false
Vue.use(ElementUI); // 第二步:将组件进行全局注册
j
new Vue({
  render: h => h(App),
}).$mount('#app')

image.gif

4、使用组件

可以直接去官方文档里面找模板选择复制,套用,访问组件的网络链接:

添加Axios组件

1、组件描述

这是一个发送和获取网络请求的组件,它对ajax进行了封装,更加方便使用

文档:

2、下载组件

在控制终端输入npm install axios,就会自动下载Axios组件

3、发送网络请求

网络请求获取数据一共有两种方法

第一种:局部引入

<template>
  <div id="app">
  </div>
</template>
<script>
import axios from 'axios';
import NewTable from './components/NewTable.vue'; // 第一步:导入路径
export default {
  data(){
      return{
        // 定义数组接受获取到的数据
        userlist:[],
      }
  },
  created:function(){
  // 这是一个生命周期,创建时候执行
    axios({
      url:'userinfo/list',
      method:'GET'
    }).then(res=>{
      this.userinfoList = res.data.massage;
      console.log(this.userinfoList);
    })
  },
  name:'App',
  components: {
    NewTable  // 第二步:注册容器
  },
}
</script>
<style>
</style>

image.gif

第二种:全局引入

在main.js中导入axios

import Vue from 'vue'
import App from './App.vue'
import axios from 'axios' // 导入axios
axios.defaults.baseURL = "http://localhost:8088"  // 配置前半段路径
Vue.prototype.$http = axios // 将axios配置到Vue属性中,this.$http相当于axios $http名字可以自定义
Vue.config.productionTip = false
new Vue({
  render: h => h(App),
}).$mount('#app')

image.gif

发送网络请求

<script>
export default {
  date() {
      return{
        // 定义数组接受获取到的数据
        userlist:[],
      }
  },
  created:function(){
    this.$http.get("/user/list").then((res)=>{
      this.userlist = res.data.massage;
      console.log(this.userlist);
    })
  }
}
</script>

image.gif

解决跨域问题

从后端解决跨域问题

添加VueRouter路由组件

1、组件描述

这是一个路由组件,负责跳转页面

2、下载组件

在控制终端输入npm install vue-router@3,就会自动下载VueRouter组件,因为创建的是vue2的项目,只有VueRouter3的版本适配所以这里下载VueRouter3的版本

3、创建路由模块

在src下创建router包,在包下创建index.js文件

import VueRouter from "vue-router";
import Vue from "vue";
import Faxianyinyue from '../components/Faxianyinyue.vue'   // 自己创建的组件
import Guanzhu from '../components/Guanzhu.vue' // 自己创建的组件
import Wodeyinyue from '../components/Wodeyinyue.vue'   // 自己创建的组件
Vue.use(VueRouter)  // 将VueRouter设置成vue的插件
const router = new VueRouter({
    // 指定hash属性与组件的对应关系
    routes:[
        //  这里可以设置一个重定向,默认主页自动跳到faixianyinyue中
        //  '/'是主页
        {path:'/',redirect:'/faxianyinyue'},
        {path:'/faxianyinyue',component:Faxianyinyue},  // 前面是链接,对应后面的组件
        {path:'/guanzhu',component:Guanzhu},
        {path:'/wodeyinyue',component:Wodeyinyue},
    ]
})
export default router   // 导出

image.gif

添加标签和占位标签

<template>
  <div>
    <!--声明路由链接-->
    <router-link to="/faxianyinyue">发现音乐</router-link>
    <router-link to="/guanzhu">关注</router-link>
    <router-link to="/wodeyinyue">我的音乐</router-link>
    <!--声明路由占位标签-->
    <router-view></router-view>
  </div>
</template>

image.gif

在main.js中导入一下router

import Vue from 'vue'
import App from './App.vue'
import router from './router/index' // 这里如果名字叫indes的话,是可以省略不写的,这里以为示范所以加上
Vue.config.productionTip = false
new Vue({
  render: h => h(App),
  router:router // 把导出的router,放到new的vue对象中
}).$mount('#app')

image.gif


相关文章
|
2天前
|
JavaScript
|
4天前
|
JavaScript
【vue】el-dialog 内的tinymce弹窗被遮挡的解决办法 及 tinymce打开弹出菜单后直接关闭对话组件,导致该弹出菜单残留
【vue】el-dialog 内的tinymce弹窗被遮挡的解决办法 及 tinymce打开弹出菜单后直接关闭对话组件,导致该弹出菜单残留
14 6
|
1天前
|
存储 缓存 JavaScript
vue代码优化方案
【7月更文挑战第13天】 **Vue.js 优化要点:** 分解大组件以提高复用性和加载速度;利用计算属性与侦听器优化数据处理;使用Object.freeze()减少响应式数据;借助Vuex或Composition API管理状态;实现虚拟滚动和无限加载提升长列表性能;路由懒加载减少初始加载时间;用Vue DevTools检测性能瓶颈;定期代码审查与重构;应用缓存策略;遵循最佳实践与团队规范,提升应用整体质量。
10 2
|
4天前
|
JavaScript 前端开发
【vue】 el-table解决分页不能筛选全部数据的问题
【vue】 el-table解决分页不能筛选全部数据的问题
15 4
|
4天前
|
JavaScript
【vue】 vue2 监听滚动条滚动事件
【vue】 vue2 监听滚动条滚动事件
10 1
|
4天前
|
JavaScript 定位技术
【天地图】vue 天地图 T is not defined
【天地图】vue 天地图 T is not defined
14 1
|
9天前
|
数据采集 JavaScript 前端开发
Vue框架的优缺点是什么
【7月更文挑战第5天】 Vue框架:组件化开发利于重用与扩展,响应式数据绑定简化状态管理;学习曲线平缓,生态系统丰富,集成便捷,且具性能优化手段。缺点包括社区规模相对小,类型支持不足(Vue 3.x改善),路由和状态管理需额外配置,SEO支持有限。随着发展,部分缺点正被克服。
19 1
|
9天前
|
JavaScript
Vue卸载eslint的写法,单独安装eslint,单独卸载eslint
Vue卸载eslint的写法,单独安装eslint,单独卸载eslint
|
9天前
|
JavaScript
青戈大佬安装Vue,无Eslint安装版,vue2安装,vue2无eslint,最简单配置Vue安装资料
青戈大佬安装Vue,无Eslint安装版,vue2安装,vue2无eslint,最简单配置Vue安装资料
|
4天前
|
JavaScript 前端开发
【vue】 Tinymce 数据 回显问题 | 第一次正常回显后面,显示空白bug不能编辑
【vue】 Tinymce 数据 回显问题 | 第一次正常回显后面,显示空白bug不能编辑
9 0