创建vue项目(三)路由跳转、反向代理、本地存储、状态管理

数据更新渲染,axios请求数据,配置环境

一、路由跳转
  1. app.vue
<template>
  <div id="app">
    <keep-alive>
      <router-view/>
    </keep-alive>
  </div>
</template>

<script>
export default {
  name: 'app'
}
</script>
  1. 页面跳转
    .router-link-active
    在这里插入图片描述
  2. 二级路由
    在路由下添加 children 数组,继续写路由,需要注意的是 children 中的 path 不要加 " / "。为了让地址为 /workOrder 是有页面效果,需要重定向到指定的页面,用 redirect 重新定向。
    在这里插入图片描述
    表格中的路由跳转
    在这里插入图片描述
二、反向代理
  1. 项目根目录创建一个配置文件 vue.config.js ,我们将在此配置一些环境,具体可在 vue-cli 官网上进行查阅。
    在这里插入图片描述
    代码:
module.exports =  {
  devServer : {
    proxy : {
      '/api' : {
        target : "http:AA.BB.CC.DD:端口",
        changeOrigin : true,
        pathRewrite:{
          '^/api':'//connect' //此处将^/api替换为/api,即使用/api就变成了http:AA.BB.CC.DD:端口//connect
        }
      }
    }
  }
}

使用:
在这里插入图片描述
axios请求的路径中的 /api ,即 proxy 下的 ‘/api’ 代表的是在 vue.config.js 中配置的 http://AA.BB.CC.DD:端口号//connect;

  1. 安装 axios ,并引入;axios说明文档
    axios全局配置 - 简书
    https://www.jianshu.com/p/0da733d7a8df
    (1) npm install axios
    (2)cnpm install axios --save-dev
    (3)main.js 引入
import axios from 'axios'
Vue.prototype.$axios = axios;
  1. 关于vue跨域问题,修改代理后仍出现404
    (1) “重新运行cnpm run dev”,
    (2) “测试接口是否能够正常访问”

  2. vue在哪个生命周期进行数据请求
    (1)一般在 created(或beforeRouter) 里面就可以,如果涉及到需要页面加载完成之后的话就用 mounted;
    (2)在created的时候,视图中的html并没有渲染出来,所以此时如果直接去操作html的dom节点,一定找不到相关的元素
    而在mounted中,由于此时html已经渲染出来了,所以可以直接操作dom节点,(此时document.getelementById 即可生效了)。
    beforeCreate 创建之前:已经完成了 初始化事件和生命周期
    created 创建完成:已经完成了 初始化注册和响应
    beforeMount 挂载之前:已经完成了模板渲染
    mounted :挂载之后:已完成HTML虚拟化,创建了el节点 可以操作DOM了
    beforeDestroy :摧毁之前:整个vue都处在实时监控空渲染和更新
    destroyed: 已摧毁,已经摧毁了观察者,子元素和事件监听
    created:在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图。
    mounted:在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。
    挂载到节点上的初始化方法通常用mounted去操作,主动调起的用methods里面封装方法。
    数据初始化一般放到created里面,这样可以及早发请求获取数据,如果有依赖dom必须存在的情况,就放到mounted(){this.$nextTick(() => { /* code */ })}里面
    Vue是异步执行dom更新的,一旦观察到数据变化,Vue就会开启一个队列,然后把在同一个事件循环 (event loop) 当中观察到数据变化的 watcher 推送进这个队列。如果这个watcher被触发多次,只会被推送到队列一次。这种缓冲行为可以有效的去掉重复数据造成的不必要的计算和DOm操作。而在下一个事件循环时,Vue会清空队列,并进行必要的DOM更新。

  3. 调用的时机:

created:在模板渲染成html前调用.

mounted:在模板渲染成html后调用

  1. 各自处理的事物

created: 数据的初始化,异步请求也适宜在这里调用。

mounted: 通常是初始化页面完成后,再对html的dom节点进行一些需要的操作

三、本地存储

对于不怎么发生变化的数据,可以使用本地存储,减少请求次数。
在这里插入图片描述
注意: 存储时,若为数组,要对数据类型进行转换。

四、状态管理

对于复杂组件之间的通讯,可以使用状态管理。为了方便以后的扩展,所采用的方式与路由类似。

  1. stores 文件夹下创建与路由一样名称的文件夹,在这些文件夹下新建 index.js 文件,用来写相关逻辑。
    index.js的代码:
    在这里插入图片描述
    还可以做一些简单的逻辑处理
    在这里插入图片描述

2. 然后在 stores 文件下的子 index.js 中注册

import 名称 from '文件路径';
exportdefault new Vuex.Store({ //新增一个modules
  modules : {
    名称
  }
});

3. 使用:
(1) html中使用: {{$store.state.city.nm}}
(2) 方法中:
在这里插入图片描述
4. 注意:
(1) window.localStorage.setItem() 不仅可以创建赋值,还可以设置重新赋值;

方法名:( nm , id ){
  this.$store.commit("名称/CITY_INFO",{ nm , id })
}

查看:
在这里插入图片描述
(2) 若存储的数据只有一条时,注意后面不需要加 .字段名
在这里插入图片描述
5. 监听vuex的变化在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3项目中,可以使用Vue Router进行路由跳转。下面是一个简单的介绍: 1. 首先,确保你的Vue 3项目已经安装了Vue Router。可以使用以下命令进行安装: ``` npm install vue-router@next ``` 2. 在项目的入口文件(通常是main.js或者main.ts)中,导入Vue Router并使用它: ```javascript import { createApp } from 'vue'; import { createRouter, createWebHistory } from 'vue-router'; import App from './App.vue'; const router = createRouter({ history: createWebHistory(), routes: [ // 定义你的路由配置 // 例如:{ path: '/home', component: Home } ], }); const app = createApp(App); app.use(router); app.mount('#app'); ``` 3. 在路由配置中定义你的路由。每个路由都有一个路径(path)和对应的组件(component)。例如: ```javascript const routes = [ { path: '/', component: Home }, { path: '/about', component: About }, ]; ``` 4. 在你的Vue组件中,可以使用`<router-link>`标签来创建链接,使用`<router-view>`标签来显示对应的组件。例如: ```html <template> <div> <router-link to="/">Home</router-link> <router-link to="/about">About</router-link> <router-view></router-view> </div> </template> ``` 5. 如果需要通过代码进行路由跳转,可以使用`$router`对象提供的方法。例如: ```javascript // 在方法中进行路由跳转 this.$router.push('/about'); // 或者使用命名路由 this.$router.push({ name: 'about' }); ``` 这就是Vue 3项目中进行路由跳转的基本步骤。如果你有任何相关问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值