Vue高级篇–实现前后端分离

  • Post author:
  • Post category:vue


一、安装Nodejs服务器



等价于我们java端的Tomcat服务器, 运行前端项目



https://nodejs.org/en/download/









安装步骤省略—-[

注意:不要安装到中文目录下

]


验证是否安装成功:

如图所示就是成功了

二、安装Npm


我们之前在vue网页中要想使用elementui 或者 axios 我们需要在网页中引入上面的插件


安装需要的依赖以及插件——

等价于之前的maven

.



注意: 如果你安装了nodejs 默认也会安装npm.


验证是否安装成功:

如图所示就是安装成功了

三、安装vue脚手架


它的作用: 用来创建vue工程


Vue CLI 4.x 需要

Node.js

v8.9 或更高版本 (推荐 v10 以上)。你可以使用

n



nvm



nvm-windows

在同一台电脑中管理多个 Node 版本


可以使用下列任一命令安装这个新的包:

npm install -g @vue/cli
# OR
yarn global add @vue/cli


你还可以用这个命令来检查其版本是否正确:

如图所示就是安装成功了

四、使用vue脚手架搭建vue工程


使用

vue ui

命名


自动弹出如下界面



五、vue工程安装需要的插件和依赖



布局:—-ElementUI



异步请求:—-axios


第一种直接在图形化安装:



安装axios依赖

六、安装前端的开发工具


Vscode 专业的前端开发工具。


webstorm 它是和idea工具同一家公司开发的软件,而且界面和idea一模一样



关联npm



重启webstorm

就能生效了

七、使用webstorm打开vue工程


node-module: 它是vue工程所依赖的模块。【空间最大的就是该目录】等价于lib文件夹


package.json: 定义工程需要的插件和依赖。等价于pom.xml


在真实开发中,不会把node_modules文件夹发给客户。 需要客户拿到项目自己下载node_modules文件夹。


在工程目录下使用npm install安装


7.1 运行vue工程



八、src目录结构的介绍


修改App.vue的内容

<template>
  <div id="app">
    <!--该标签 等价于之前的a标签   to属性等价于a标签中href属性-->
    <router-link to="/home">首页</router-link> *
    <router-link to="/student">学生</router-link>

    <!--路由视图渲染标签-->
    <router-view/>
  </div>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue'

export default {
  name: 'app',
  components: {
    HelloWorld
  }
}
</script>

<style>
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>


路由跳转的流程

九、浅谈main.js的配置文件


如果之后还要用什么插件需要在main.js中引入

十、浅谈App.vue组件



每个组件必须加 div


10.1. 如何一个组件引用另一个组件?


①当前组件中引入另一个组件

 /*①导入组件------其他页面
   import   别名   from   '组件路径'
   */
import Hello from './components/Hello.vue'
import HelloWorld from './components/HelloWorld.vue'


②注册另一个组件


export default {
  name: 'app',
  //②注册组件
  components: {
    Hello,
    //起别名
    //'Hello' : 'aaa',
    HelloWorld
  }
}


③使用注册的组件


 <!--③使用组件-->
    <Hello></Hello>
    <!--<aaa></aaa>-->
    <HelloWorld msg="Welcome to Your Vue.js App"/>


10.2.父组件如何给子组件传值?

图中

msg2应该是Number类型


①父组件App.vue定义要传的属性

data() {
    return {
      age: 15,
      names: ["张三","李四"]
    }
  }


②使用子组件的时候传值

 <!--③使用组件  在子组件 props中定义了msg名称   跟子组件保持一致就行-->
    <Hello :msg="names" :msg2="age"></Hello>


③子组件定义props,并使用

props: {
            msg: [],
            msg2: String
        }


④子组件使用属性

{{msg[0]}}  {{msg2}}

十一、前后端异步调用时


跨域问题: 从一个域向另一个域发生请求。可能会产生跨域问题。


跨域产生的前提:


(1)必须使用了ajax请求


(2) 不同域。【协议不同 | ip不同 | port不同】


如何解决:


[1] 前端解决 【我不会】


[2] 后端解决 –它也有两种方式。



第一种: 直接使用注解



第二种: 写一个跨域配置类

/**
 * Created by Intellij IDEA
 *
 * @author 王俊凯
 * @Date: 2022/11/22 18:24
 * @Version 1.0
 */
package com.wjk.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

@Configuration
public class CorsConfig {

    // 当前跨域请求最大有效时长。这里默认1天
    private static final long MAX_AGE = 24 * 60 * 60;

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*"); // 1 设置访问源地址
        corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头
        corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法
        corsConfiguration.setMaxAge(MAX_AGE);
        source.registerCorsConfiguration("/**", corsConfiguration); // 4 对接口配置跨域设置
        return new CorsFilter(source);
    }
}

十二、浅谈路由


12.1  使用路由跳转

   <p>
     <!--router-link可以理解为<a>   to可以理解为href=路径
        一旦使用了路由跳转  ----必须找router/index.js文件
        该文件中配置了路由和组件的映射关系
     -->
     <router-link to="/home"><el-button type="primary">首页</el-button></router-link>
     <router-link to="/user"><el-button type="primary">用户管理</el-button></router-link>
   </p>


12.2 配置router/index.js文件

    //不管用不用都先把组件引用过来
  {
    path: '/home',
    name: 'Home',
    component: Home
  },
    //使用的时候再把组件引用过来
  {
    path: '/user',
    name: 'User',
    component: () => import('../views/User.vue')
  }


这里有两种配置路由的方式,一种是不管用不用直接把组件先引过来,另一种是使用的时候再把组件引过来


12.3 渲染组件

    <!--渲染组件-->
      <router-view/>



版权声明:本文为wk3510原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。