Vue深入(1)

本文详细介绍了Vue.js中的数据驱动理念,MVVM架构模式以及其核心要素——计算属性和监听器(watch)。计算属性提供缓存功能,只在依赖变化时更新。watch用于执行异步操作或响应多个值变化。此外,还阐述了Vue组件的生命周期,包括挂载、更新和销毁阶段。组件化是提升代码复用性的关键,而路由缓存利用`<keep-alive>`可以优化用户体验。最后,讨论了Vue的hash模式与history模式,并提到了在history模式下可能遇到的问题及其解决方案。

数据驱动理念

简单的来说,当数据发生变化时,页面也会跟着变化,开发者不需要手动修改dom

MVVM

M:modal:数据 V:view 视图 ViewModal:数据和视图连接的桥梁(实例化)
MVVM三要素:

计算属性

好处:有缓存的效果。当一个计算属性所依赖的数据发生变化时,他才会重新获取值
作用:计算的结果会被缓存,除非依赖的响应式prototype发生变化才会计算+
注意:如果某个依赖(非prototype)在该实例范畴之外,数据不会自动更新,示例如下:

var vm = new Vue({
  data: { a: 1 },
  computed: {
    // 仅读取
    aDouble: function () {
      return this.a * 2
    },
    // 读取和设置
    aPlus: {
      get: function () {
        return this.a + 1
      },
      set: function (v) {
        this.a = v - 1
      }
    }
  }
})
vm.aPlus   // => 2
vm.aPlus = 3
vm.a       // => 2
vm.aDouble // => 4

watch和computed

watch: 执行异步操作或较大开销的操作 ,一个值影响多个值的变化
computed:多个值影响一个值的变化
由于computed有缓存 所以在实际操作中两个都能使用的时候 优先考虑computed

生命周期函数

挂载:

  1. beforeCreate
  2. created
  3. beforeMount
  4. mounted

更新:(元素或组件发生变化操作)

  1. beforeUpdate
  2. updated

销毁:

  1. beforeDestory
  2. destoryed

图解
在这里插入图片描述
在组件中关于data不是一个对象,而是一个函数的原因,官方文档有明确的说明

组件化理解

定义: 组件是可复用的实例
应用场景:

  1. 通用型组件:实现最基本的功能,具有通信性和可复用性
  2. 业务组件:用于完成具体的业务功能
  3. 页面组件 :页面中的内容应该放在独立的组件中,根据需求进行切换

路由组件缓存

<keep-alive include="要进行缓存路由的名称" ><router-view/></keep-alive>

注意:要设置缓存的路由时候 在定义router下的路由规则需要设置name属性 name的值和上面include的值一样
keep-alive有两个钩子函数:activated,deactivated
activated:执行时机为 当a页面跳转到b页面(必须是缓存页面)的时候触发 用来执行需要更新的数据
deactivated:执行时机 从b页面跳出的时候执行
点击刷新后执行的钩子函数:created—>mounted—>activated
应用场景: 当从商品列表页面跳转到商品详情页面,在点击返回的时候 数据并没有发生变化要展示的还是原来的数据的情况下 可以使用路由缓存

hash模式与history模式

设置方式 默认为hash模式
要设置为history模式 只需要在配置路由的地方加一个mode属性 值为history 就ok了
注意:history模式存在问题 在初次加载的时候页面没有问题,是由于第一次加载的时候是调用的h5中的history.pushState()加载,但是在刷新之后,前端会发送请求,后端是没有接口只是加载了静态资源的数据,只是将index.html返回,解决方式为导入connect-history-api-fallback 然后使用express的use中间件启用

const app = express()
const history = require("connect-history-api-fallback")
app.use(history())

nginx配置history路由模式原理及方法

在这里插入图片描述

错误识别处理

在这里插入图片描述
出现这种错误的原因是因为 vue有运行时版本和完成时版本 运行时版本不支持template模板语法 只有完成版本才支持template模板语法,完成时版本比运行时版本大10k左右
解决方式:两种

  1. 设置vue.config.js文件的runtimepiler的值为true 将运行时版本改变为完整版(本质上也是通过构建render函数的方式 不过是自动转换 不需要人为动手)
  2. 通过构建render函数的方式解决
 // template: `<a :href="to" ><slot></slot></a>`
      // 通过构建render函数的方式解决运行时版本不能解析template模板问题
      render(h) {
        // h有三个参数 
        //第一个参数 要创建的标签名,
        //第二个参数 要创建标签的属性 是一个对象 , 
        //第三个参数 要创建标签前中嵌套的标签 是一个数组
         return h("a", {
          attrs: {
            href: this.to
          }
        },
        // 获取匿名slot的方式 为 this.$slot.default
        [this.$slots.default])
      }
本研究基于扩展卡尔曼滤波(EKF)方法,构建了一套用于航天器姿态与轨道协同控制的仿真系统。该系统采用参数化编程设计,具备清晰的逻辑结构和详细的代码注释,便于用户根据具体需求调整参数。所提供的案例数据可直接在MATLAB环境中运行,无需额外预处理步骤,适用于计算机科学、电子信息工程及数学等相关专业学生的课程设计、综合实践或毕业课题。 在航天工程实践中,精确的姿态与轨道控制是保障深空探测、卫星组网及空间设施建设等任务成功实施的基础。扩展卡尔曼滤波作为一种适用于非线性动态系统的状态估计算法,能够有效处理系统模型中的不确定性与测量噪声,因此在航天器耦合控制领域具有重要应用价值。本研究实现的系统通过模块化设计,支持用户针对不同航天器平台或任务场景进行灵活配置,例如卫星轨道维持、飞行器交会对接或地外天体定点着陆等控制问题。 为提升系统的易用性与教学适用性,代码中关键算法步骤均附有说明性注释,有助于用户理解滤波器的初始化、状态预测、观测更新等核心流程。同时,系统兼容多个MATLAB版本(包括2014a、2019b及2024b),可适应不同的软件环境。通过实际操作该仿真系统,学生不仅能够深化对航天动力学与控制理论的认识,还可培养工程编程能力与实际问题分析技能,为后续从事相关技术研究或工程开发奠定基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值