Vue项目创建

2023-11-19

1.创建项目

        在终端中输入命令 vue create 项目名称用以创建项目,在命令输入前会有命名提示符,提示当前所在目录是哪里。输入命令之后,等待片刻,会出现选择vue版本,选择vue2项目。

2.配置路由

        配置路由,需要下载依赖库(要通过cd命令 进入到项目根目录),使用命令npm install --save --force vue-router@3.5.1  // 安装指定版本3.5.1的vue-router

PS:如果有拉取依赖,在项目的根目录下点击查看package.json文件,在该文件中就包含了我们带入的依赖库。

拉取依赖后,在src目录下创建router目录,在其中创建index.js文件用以配置路由。

import Vue from "vue";
import VueRouter from "vue-router";

// 导入需要配置的路由组件


Vue.use(VueRouter)

// 创建常量 配置路由和组件的映射
const routes = [
   // {path:'url',component:组件} 
]

// 建立router对象
export default new VueRouter({
    mode:'history',
    routes
})

        在main.js文件中,导入路由

import Vue from 'vue'
import App from './App.vue'

import router from './router/index.js' // 导入路由配置文件

Vue.config.productionTip = false

new Vue({
  router:router, // 将路由加入vue实例中
  render: h => h(App),
}).$mount('#app')

3.配置ajax和代理服务器

         首先通过npm拉取axios依赖库,通过命令npm install --save --force axios

        拉取后,首先去vue.config.js文件中添加配置

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  lintOnSave:false,
  devServer:{
    port:9000,
    proxy:{
      // 以/api开头的请求,通过代理访问http://localhost:8080
      "/api":{
        target:"http://localhost:8080",
        pathRewrite:{
          "^/api":"/"
        }
      }
    }
  }
})

        

        在src目录下,创建servcie目录,在其中导入ajax.js文件(自己封装的文件)。

import axios from 'axios';
import qs from 'qs'; // 将对象转化为 a=1&b=2格式字符串
const headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
}
export default {
    async getSubmit (serverURL,paramObj){
    let response = await axios({
        method:"get",  // 请求方式
        url:serverURL,  // 请求URL
        params:paramObj  // 请求参数
    })
    return response.data;  // 返回响应消息体内容    
},
   async postSubmit(serverURL,paramObj)  {
    let response = await axios({
      
        method:"post",
        url:serverURL,
        data:paramObj
    })
    return response.data;
},
    async uploadSubmit (submitURL,param) {
        let formData = new FormData();

        for(var fieldName in param){
            formData.append(fieldName, param[fieldName]);
        }
        let config = {
            headers: {
            'Content-Type': 'multipart/form-data'
            }
        }
        var response = await axios.post(submitURL, formData, config);
        return response.data;
  
    }
}

        在main.js文件中,导入并配置ajax。

import Vue from 'vue'
import App from './App.vue'

import router from './router/index.js' // 导入路由配置文件
// 导入ajax文件
import ajax from './service/ajax.js'

Vue.config.productionTip = false
Vue.prototype.ajax = ajax

new Vue({
  router:router, // 将路由加入vue实例中
  render: h => h(App),
}).$mount('#app')

4.Vuex安装配置        

        利用npm下载依赖包 npm install --save --force vuex@3.6.2 element-ui

        在src目录下,新建store目录,并在其中新建index.js文件,在其中建立store对象,创建store对象时,需要加入一个可选的选项对象,有如下的可选选项:state--保存数据的对象; getters--对数据进行处理的逻辑方法 ;mutations--改变state的方法;actions--异步方法; module--指定store的子模块。

import Vue from "vue";
import Vuex from 'vuex'

Vue.use(Vuex)

// 创建store对象
export default new Vuex.Store({
    state:{//共享数据
        num:0,
        userId:10
    },
    mutations:{// 更改state的方法
        addNum(state){
            state.num++;
        }
    },
    getters:{

    },
    actions:{

    }
});

        然后,在main.js中导入注册store

import Vue from 'vue'
import App from './App.vue'

import router from './router/index.js' // 导入路由配置文件
// 导入ajax文件
import ajax from './service/ajax.js'
import store from './store/index.js'


Vue.config.productionTip = false
Vue.prototype.ajax = ajax

new Vue({
  store:store,  // 将store 加入到vue实例中
  router:router, // 将路由加入vue实例中
  render: h => h(App),
}).$mount('#app')

        在哪一个组件,需要使用到store中的内容,在组件中导入并注入store即可。

<script>
// 导入store 
import {mapState,mapGetters,mapMutations,mapActions} from 'vuex'

export default {
    // 注入到组件中 mapState 放入计算属性中
    computed:{
        ...mapState(['num','userId'])
    },
    methods:{
        ...mapMutations(['addNum']),
        add(){
            this.addNum();
        }
    }
}
</script>

5.element-ui  

        利用npm下载依赖包 npm install --save --force element-ui

        在mian.js中,去配置element-ui

import Vue from 'vue'
import App from './App.vue'

import router from './router/index.js' // 导入路由配置文件
// 导入ajax文件
import ajax from './service/ajax.js'
import store from './store/index.js'

// element-ui 库 和element-ui的样式
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

Vue.use(ElementUI)
Vue.config.productionTip = false
Vue.prototype.ajax = ajax

new Vue({
  store:store,  // 将store 加入到vue实例中
  router:router, // 将路由加入vue实例中
  render: h => h(App),
}).$mount('#app')

6.新建后的vue项目结构

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue项目创建 的相关文章

  • 我如何在 AngularJS 中监听点击并按住的情况?

    我制作了一个时间计数器 您可以通过单击按钮来增加或减少时间 然而 我希望当我单击并按住按钮时 时间的价值会不断攀升 所以目前如果你看到我的Plunkr http plnkr co edit BxX9x5zYFMXVqt5JsN1F p pr
  • 如何更改传单中功能集的样式?

    我正在看等值区域的例子 https leafletjs com examples choropleth https leafletjs com examples choropleth 这是他们使用的数据源 type Feature prop
  • 动态速度计 javascript 或 jquery 插件

    我希望有动态ajax插件在页面上显示速度计 一个想法是我设置一个背景并旋转针 有人知道相关插件吗 这里有一些供您参考 http bernii github com gauge js http bernii github com gauge
  • 网站 YouTube 嵌入视频不断播放

    我正在使用 youtube 提供的 iframe 在我的网站上嵌入视频 我还使用了一个 css 弹出窗口 这是我从这个页面学到的http www pat burt com web development how to do a css po
  • 非 DOM 对象上的 jQuery 自定义事件

    我最近阅读了一些代码 其功能如下 bob name Bob Smith rank 7 bob bind nameChanged function bob trigger nameChanged 这似乎有效 但我在 jQuery 文档或源代码
  • 如何按照编写的顺序迭代 javascript 对象属性

    我发现了代码中的一个错误 我希望通过最少的重构工作来解决该错误 此错误发生在 Chrome 和 Opera 浏览器中 问题 var obj 23 AA 12 BB iterating through obj s properties for
  • 如何使用 jest 模拟第三方库

    我正在开发一个node js应用程序使用nestjs我有一堂课叫LoggerService如下 export class LoggerService private logger Rollbar constructor this logge
  • Leaflet js虚构地图

    我是 Leaflet 的新手 我想了解如何创建完全交互式的虚构地图 我有一张图像想要转换为传单地图 该图像基本上像图表一样具有许多连接和点 我想首先将该图像转换为地图 能够将鼠标悬停在这些点上 突出显示它们并显示有关它们的信息 并且还可以在
  • 是否可以使用 javascript 测试用户的浏览器/操作系统是否支持给定类型的链接?

    是否可以使用 javascript 或其他任何东西 测试用户的操作系统 浏览器是否支持给定的 url 方案 例如 大多数仅使用网络邮件的用户计算机上未设置 mailto 是否有可能以某种方式捕获单击 mailto 链接的尝试并弹出比浏览器错
  • 仅一页 JavaScript 应用程序

    您是否尝试过单页 Web 应用程序 即浏览器仅从服务器 获取 一页 其余部分由客户端 JavaScript 代码处理 此类 应用程序页面 的一个很好的例子是 Gmail 对于更简单的应用程序 例如博客和 CMS 使用这种方法有哪些优点和缺点
  • 如何使用 JavaScript 获取没有 HTML 元素的纯文本?

    我的 HTML 中有 1 按钮和一些文本 如下所示 function get content I don t know how to do in here
  • 通过 node-http-proxy 保留基于 cookie 的会话

    我有一个简单的基于 Express 的 Node js Web 服务器 用于开发 JavaScript 应用程序 我将服务器设置为使用 node http proxy 来代理应用程序向在不同域和端口上运行的 Jetty 服务器发出的 API
  • JavaScript 中数组的 HTML 数据列表值

    我有一个简单的程序 它必须从服务器上的文本文件中获取值 然后将数据列表填充为输入文本字段中的选择 为此 我想要采取的第一步是我想知道如何动态地将 JavaScript 数组用作数据列表选项 我的代码是
  • 是否有任何非轮询方式来检测 DOM 元素的大小或位置何时发生变化?

    很长一段时间以来 我一直在寻找一种方法来检测 DOM 元素的大小或位置何时发生变化 这可能是因为窗口调整了大小 或者因为向该元素添加了新的子元素 或者因为在该元素周围添加了新元素 或者因为 CSS 规则已更改 或者因为用户更改了浏览器的字体
  • 如何在 Angular 中从父组件访问子组件?

    I have mat paginator在子组件a中 如下所示 子组件 html
  • 使用 JS 合并具有相同值的相邻 HTML 表格单元格

    我已经为此苦苦挣扎了一段时间 我有一个根据一些 JSON 数据自动生成的表 该数据可能会有所不同 我想合并第一列中具有相同值的相邻单元格 例如此表中的 鱼 和 鸟 table tr td fish td td salmon td tr tr
  • 如何获取 UIWebView 中元素的位置?

    我在 iPad 程序中加载了 html 的 UIWebView 通过使用 webkit column width 我将 html 分为几列 padding 0px height 1024px webkit column gap 0px we
  • Jquery - 通过在字符串中构建 id 的 id 获取元素

    我在使用 jquery 元素时遇到问题 我正在 var 中构造名称 例如 var myId myGotId myId attr title changed myId 返回空 我想通过 id 获取我的元素 但动态构建我的 Id 连接字符串 编
  • 防止文本区域出现新行

    我正在开发聊天功能 使用 Vue 并使用文本区域作为输入 以便溢出换行 并且对于编写较长消息的用户来说更具可读性 不幸的是 当用户按下 Enter 键并提交时 光标会在提交之前移动到新行 从而使用户体验感觉不佳 关于如何使用普通 Javas
  • 在 Javascript 中减少/分组数组

    基于this https stackoverflow com a 40774906 3254598例如 我想以稍微不同的方式按对象进行分组 结果应该如下 key audi items make audi model r8 year 2012

随机推荐

  • 如何获取iPhone手机的UUID

    方法一 通过Windows下的iTunes 1 数据线连接iPhone手机 在Windows下打开iTunes 在 iPhone 管理界面下zhi点击 序列号 查看自己的 UUID 标识符 2 此dao时点击菜单 编辑 gt 复制 3 新建
  • 白盒测试常用工具介绍

    白盒测试工具一般是针对代码进行测试 测试中发现的缺陷可以定位到代码级 根据测试工具原理的不同 又可以分为静态测试工具和动态测试工具 1 Jtest 是一个代码分析和动态类 组件测试工具 是一个集成的 易于使用和自动化的Java单元测试工具
  • js几种生成随机颜色方法

  • Windows Vista的安装和配置

    声明 此文章为个人读书笔记 仅记些重要的内容备忘 无盗版之意 更多相关内容请查看 indows Vista使用详解 严禁转载 第二章 Windows Vista的安装和配置 全新安装Windows Vista 从Windows XP升级为W
  • Text-to-image Diffusion Model文本到图像扩散模型综述

    Text to image Diffusion Model文本到图像扩散模型综述 论文地址 https arxiv org pdf 2303 07909 pdf 1 Introduction Text to image模型发展如下图所示 开
  • 判断字符串是否为数字

    不迷迷糊糊 直接整代码 判断字符串是否是数字 判断是否为数字 是 返回true param str return public static boolean isNumeric final String str null or empty
  • vue实现鼠标划入划出判断是否显示内容

    如图所示我想实现当鼠标划入时右上角的设置图标显示 鼠标移出设置图标在隐藏 可以通过vue的 mouseenter和 mouseleave事件来实现
  • Redis事务

    7 Redis事务 7 1 背景 假如你给你朋友转账 此时你的账户会减少1bw 你朋友的账户会多1bw 此时如果你转账失败 但是你朋友的账户也多了1bw 此时这对于银行来说 这就是事故 说明你的程序存在很大漏洞 不能保证数据的原子性 此时就
  • 通俗讲解c++ future/shared_future

    目录 future介绍 std future对象只有在有效的 valid 情况下才有用 useful 查询future对象是否有效 future的拷贝构造函数是被禁用的 对future的处理 四种方式 获取future的状态 future
  • Qt 提升窗口部件 没有效果

    1 新建一个控件的子类 然后再控件上右键点击提升 没有效果 原因1 查看提升的控件的类型是否正确 原因2 查看提升的子类的路径是否正确 如果C 文件跟 pro文件在同一级目录下 直接写头文件 如果在子目录下要写子目录 前面要加 原因3 如果
  • Qt笔记28:QJsonObject和QByteArray的相互转换

    brief 字节数组转Json param byteArray return QJsonObject getJsonFromByteArray const QByteArray byteArray QJsonParseError jsonP
  • 2023年我国网络安全人才市场状况

    网络安全人才市场状况 本章以智联招聘多年来形成的丰富的招聘 求职信息大数据为基础 结合了奇安信集团 在网络安全领域多年来的专业研究经验 相关研究成果具有很强的代表性 对涉及安全人才 的全平台招聘需求与求职简历进行分析 注 本章中的需求指数采
  • Android Studio虚拟机启动后没有开机问题解决

    这里使用的是Android Studio 3 2版本 在Win 10系统上运行 其他环境可能会有所不同 目录 一 新增虚拟机 二 有报错提示时的可能解决办法 三 无报错提示时的可能解决办法 一 新增虚拟机 1 打开AVD Manager A
  • datax导入hive动态分区

    配置hive支持动态分区
  • pandas数据提取

    pandas是一个python数据分析库 提供了多种方法提取数据 一种常用的方法是使用索引和列标签 例如 import pandas as pddf pd read csv data csv 获取特定行 row df loc 0 获取特定列
  • vuepc端实现数据加载_【项目实战经验】vuecli3,实现PC端分辨率适配

    vue cli3 根据屏幕大小适配样式 最近做了一个大屏 考虑到要在不同的显示器上 显示同一套代码 所以我就想到了 阿里的 lib flexible 干货非常多 千万不要错过细节哦 废话不说 直接干 1 安装需要响应的包 npm i lib
  • 【AI实战】大语言模型(LLM)有多强?还需要做传统NLP任务吗(分词、词性标注、NER、情感分类、知识图谱、多伦对话管理等)

    AI实战 大语言模型 LLM 有多强 还需要做传统NLP任务吗 分词 词性标注 NER 情感分类 多伦对话管理等 大语言模型 大语言模型有多强 分词 词性标注 NER 情感分类 多伦对话管理 知识图谱 总结 大语言模型 大语言模型 LLM
  • IDEA 配置aliyunmaven 仓库地址无法下载依赖jar 包

    由于Mavn 默认公共仓库地址是国外的导致下载jar 包比较慢 所以推荐使用aliyun maven 仓库镜像 编辑setting xml 文件 在mirrors节点下 新增如下内容 我按照百度检索的结果 在maven 的setting x
  • 接口测试八(压缩解压)

    转自 http www 360doc com content 16 0128 15 30056680 531241550 shtml 一 什么是HTTP压缩 HTTP压缩采用通用的压缩算法如gzip等压缩HTML JavaScript或CS
  • Vue项目创建

    1 创建项目 在终端中输入命令 vue create 项目名称用以创建项目 在命令输入前会有命名提示符 提示当前所在目录是哪里 输入命令之后 等待片刻 会出现选择vue版本 选择vue2项目 2 配置路由 配置路由 需要下载依赖库 要通过c