小言_互联网的博客

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

366人阅读  评论(0)

        一、安装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 以上)。你可以使用 nnvmnvm-windows 在同一台电脑中管理多个 Node 版本

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


   
  1. npm install -g @vue/cli
  2. # OR
  3. 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的内容        


  
  1. <template>
  2. <div id="app">
  3. <!--该标签 等价于之前的a标签 to属性等价于a标签中href属性-->
  4. <router-link to="/home">首页 </router-link> *
  5. <router-link to="/student">学生 </router-link>
  6. <!--路由视图渲染标签-->
  7. <router-view/>
  8. </div>
  9. </template>
  10. <script>
  11. import HelloWorld from './components/HelloWorld.vue'
  12. export default {
  13. name: 'app',
  14. components: {
  15. HelloWorld
  16. }
  17. }
  18. </script>
  19. <style>
  20. #app {
  21. font-family: 'Avenir', Helvetica, Arial, sans-serif;
  22. -webkit- font-smoothing: antialiased;
  23. -moz-osx- font-smoothing: grayscale;
  24. text-align: center;
  25. color: #2c3e50;
  26. margin-top: 60px;
  27. }
  28. </style>

        路由跳转的流程

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

        

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

         十、浅谈App.vue组件

                每个组件必须加 div

         

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

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


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

        ②注册另一个组件 

        


   
  1. export default {
  2. name: 'app',
  3. //②注册组件
  4. components: {
  5. Hello,
  6. //起别名
  7. //'Hello' : 'aaa',
  8. HelloWorld
  9. }
  10. }

        ③使用注册的组件 

        


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

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

         图中msg2应该是Number类型

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


   
  1. data() {
  2. return {
  3. age: 15,
  4. names: [ "张三", "李四"]
  5. }
  6. }

                ②使用子组件的时候传值


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

                ③子组件定义props,并使用


   
  1. props: {
  2. msg: [],
  3. msg2: String
  4. }

                ④子组件使用属性

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

 

        十一、前后端异步调用时

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

        跨域产生的前提:

        (1)必须使用了ajax请求

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

        如何解决:

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

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

        第一种: 直接使用注解

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


   
  1. /**
  2. * Created by Intellij IDEA
  3. *
  4. * @author 王俊凯
  5. * @Date: 2022/11/22 18:24
  6. * @Version 1.0
  7. */
  8. package com.wjk.config;
  9. import org.springframework.context.annotation.Bean;
  10. import org.springframework.context.annotation.Configuration;
  11. import org.springframework.web.cors.CorsConfiguration;
  12. import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
  13. import org.springframework.web.filter.CorsFilter;
  14. @Configuration
  15. public class CorsConfig {
  16. // 当前跨域请求最大有效时长。这里默认1天
  17. private static final long MAX_AGE = 24 * 60 * 60;
  18. @Bean
  19. public CorsFilter corsFilter () {
  20. UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
  21. CorsConfiguration corsConfiguration = new CorsConfiguration();
  22. corsConfiguration.addAllowedOrigin( "*"); // 1 设置访问源地址
  23. corsConfiguration.addAllowedHeader( "*"); // 2 设置访问源请求头
  24. corsConfiguration.addAllowedMethod( "*"); // 3 设置访问源请求方法
  25. corsConfiguration.setMaxAge(MAX_AGE);
  26. source.registerCorsConfiguration( "/**", corsConfiguration); // 4 对接口配置跨域设置
  27. return new CorsFilter(source);
  28. }
  29. }

        十二、浅谈路由

         12.1  使用路由跳转


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

        12.2 配置router/index.js文件


  
  1. //不管用不用都先把组件引用过来
  2. {
  3. path: '/home',
  4. name: 'Home',
  5. component: Home
  6. },
  7. //使用的时候再把组件引用过来
  8. {
  9. path: '/user',
  10. name: 'User',
  11. component: () => import( '../views/User.vue')
  12. }

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

        12.3 渲染组件


  
  1. <!--渲染组件-->
  2. <router-view/>

         


转载:https://blog.csdn.net/wk3510/article/details/127970293
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场