Vues数据大屏适配scale缩放方案

1.首先在utils文件夹下创建一个drawMixin.js文件

// 屏幕适配 mixin 函数
// * 默认缩放值
const scale = {
  width: '1',
  height: '1',
}
// * 设计稿尺寸(px)
const baseWidth = 1920
const baseHeight = 1080
// * 需保持的比例(默认1.77778)
const baseProportion = parseFloat((baseWidth / baseHeight).toFixed(5))
export default {
  data () {
    return {
      // * 定时函数
      drawTiming: null
    }
  },
  mounted () {
    this.calcRate()
    window.addEventListener('resize', this.resize)
  },
  beforeDestroy () {
    window.removeEventListener('resize', this.resize)
  },
  methods: {
    calcRate () {
      const appRef = this.$refs["appRef"]
      if (!appRef) return
      // 当前宽高比
      const currentRate = parseFloat((window.innerWidth / window.innerHeight).toFixed(5))
      if (appRef) {
        if (currentR
### Vue.jsVuex Store 状态管理 #### Vuex 的作用与原理 Vuex 是专为 Vue.js 应用程序开发的状态管理模式和库。它采用集中式存储管理应用的所有组件的状态,并以规则保证以可预测的方式发生变化[^1]。 #### 创建 Vuex Store 实例 为了创建一个 Vuex Store 实例,需先安装并引入 `vuex` 插件到项目中: ```javascript // 引入 vuex 模块 import Vuex from 'vuex'; ``` 接着注册该插件至 Vue 上下文中以便全局访问: ```javascript Vue.use(Vuex); ``` 随后定义状态树 (`state`)、变更方法(`mutations`)以及异步操作处理函数(`actions`)等核心要素,最后实例化一个新的 Store 对象导出供外部使用[^3]: ```javascript const state = { count: 0, }; const mutations = { increment(state) { state.count++; }, }; const actions = { increment(context) { context.commit('increment'); } } export default new Vuex.Store({ state, mutations, actions }); ``` #### 将 Store 集成进 Vue 实例 完成上述配置之后,在主入口文件(main.js 或 main.ts),通过选项参数的形式传给新的 Vue 构造器即可让整个应用程序共享同一个 Store 实例[^2]: ```javascript new Vue({ el: '#app', store, // 注册store属性 render: h => h(App), }).$mount('#app') ``` 这样做的好处在于任何地方都可以轻松获取当前的应用状态而无需担心父子关系链过长带来的不便;同时也方便调试工具介入监控每一次状态变化过程中的细节信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值