Vuex里的modules

在store文件夹里创建一个modules的文件夹,里面随意创建一个.js文件,然后export输出
这样这个文件夹就成了一个模块,再在原先的index.js文件里加入一个modules选项
上图中Vuex.Store的实例对象里放了原先堆叠好的store之后还是可以放其他的选项的,这就相当于总部,而modules里相当于分部,工作中为了避免模块紊乱,通常都写在modules里。
 
因为都放在store的modules里的键为test里了,所以对应的引用界面需要这样引用--->>>
 
这样写固然可以,但是代码冗余,非常长,不利于管理,通常工作中常用mapState进行映射,想用谁就把谁映射进来
mapState只能在计算属性中使用,找到对应的需要应用的组件,里面实例里加上计算方法,用mapState进行映射。
这样v-text里就可以直接用msg来引用vuex里的共享数据了。
在test.j里加上这么一条.
mapActions同上,mapactions要放在methods里
 
对应的组件里都换成msg、total、this.addCount()……………………等等。
注:data里的数据不能和计算属性里的数据冲突。
 
 
modules:
把vuex根store,拆分成多个子store(module),以方便开发维护。
使用方法:
1、在new Vuex.Store({modules:{m1,m2,m3}})
2、子store(module)就是一个普通的对象
~~~
 
export default {
    namespaced:true,
    state:{},
    getters:{},
    mutations:{},
    actions:{}
}
 
3、组件中如何使用子store(modules)的数据和方法呢?
 
import {mapState,mapGetters,mapMutations,mapActions} from 'vuex'
```
```
computed:{
        ...mapState('m1',['msg']),
        ...mapGetters('m2',['total'])
},
methods:{
        ...mapMutations('m3',['addTodo']),
        ...mapActions('m3',['ajaxGet'])
}
 
 
引入多个不同的模块,变量名不能重复
 
 
 
 
 
 

移动端布局:

若先改端口,在项目根目录新建一个vue.config.js(只能是这个)。
 
 
为了解决移动端端口适配问题,在public文件夹里创建一个rem.js的文件,里面写上代码
//作用:重置html的font-size
function resetRootFZ(){
    var oHtml=document.querySelector('html');
    var w=oHtml.getBoundingClientRect().width;
    oHtml.style.fontSize=w/10+'px';
}
 
 
resetRootFZ();
 
 
//当window窗口尺寸发生变化时,重新设置字体的大小
window.addEventListener('resize',function(){
    resetRootFZ();
})
并在public里的index.html主页中引入该文件
 
①:在vscode里安装一个创建--->    px to rem
②:点击文件->首选项->设置->插件,找到px to rem,改成如下设置。
之后写完px单位后,按下alt+z可以自动将px单位转换为对应rem的单位。比率为上图中的比率,750px-->10rem(750/75)
 
 
Sass
Vue官方文档里,vue cli,指南,开发css相关
在项目根目录
1.npm install sass-loader -D(生产环境安装即开发依赖,上线后已经转化了,所以不需要-S)
2.npm isntall sass -D         安装sass
 
在vue的对应组件的style里,用lang属性赋值为scss.即sass文件后缀。
 
 
Vant见readme.md文件:
vant是一个专注于移动端的vue UI组件库(react中不可用)。
 
npm install vant -S
npm install babel-plugin-import -D---->自动按需引入组件插件
安装玩这个插件之后,根目录下会有一个babel.config.js的文件,加上一段代码
module.exports = { plugins: [ ['import', { libraryName: 'vant', libraryDirectory: 'es', style: true }, 'vant'] ] };
这段代码作用:引入vant UI的样式文件。
 
 
然后重启项目,在对应组件中引入你需要的代码,vant官方文档里写的非常清楚。
 
 
vant的特殊性:
这样写完看上去没问题,其实vant里的每个组件都很特殊,打印出来的Button是这样的。
正确写法:
 
或者第二种方法:
components:{
        Button:Button
}
在template里引用时用
<Button type="default">默认按钮</Button>
这样也可以生效。
 
 
总结:
 

Vuex里的module选项和移动端布局的更多相关文章

  1. webpack里的module选项配置

    webpack里的module 有loaders选项和noParse选项,noParse选项配置不需要解析的目录和文件 module:{ loaders:[], noParse: [ path.joi ...

  2. nodejs里的module.exports和exports的关系

    关于node里面的module.exports和exports的异同,网上已经有很多的资料,很多的文章,很多的博客,看了很多,好像懂了,又好像不懂,过几天又不懂了...大致总结是这样的: //下面这种 ...

  3. vuex里mapState,mapGetters使用详解

    这次给大家带来vuex里mapState,mapGetters使用详解,vuex里mapState,mapGetters使用的注意事项有哪些,下面就是实战案例,一起来看一下. 一.介绍 vuex里面的 ...

  4. 关于common.js里面的module.exports与es6的export default的思考总结

    背景 公司项目需要裁切功能,基于第三方图片裁切组件vue-cropper(0.4.0版本),封装了图片裁切组件(picture-cut)(放在公司内部组件库,仅限于公司内部使用) 在vue-cropp ...

  5. vue : 在vuex里写一个数组首尾元素互换的方法

    不着急上代码,先想几个问题. vuex里怎么写方法? mutation里写vuex方法,组件中用commit调用. 数组首尾元素怎么互换? arr.splice(0, 0, arr[arr.lengt ...

  6. JS/TS项目里的Module都是什么?

    摘要:在日常进行JS/TS项目开发的时候,经常会遇到require某个依赖和module.exports来定义某个函数的情况.就很好奇Modules都代表什么和有什么作用呢. 本文分享自华为云社区&l ...

  7. 移动端布局的一些设置(在viewport里设置使页面显示相同宽度,显示相同像素大小)

    viewport(视口) 具体数值(不设置时默认为980 ,部分安卓手机不支持设置成具体数值) width=device-width 和设备宽度保持一致 user-scalable=no 是否允许用户 ...

  8. 移动端布局Demo展示图文

    上两张图自勉一下(来自刘墉先生的文章,最近看他的作品):然后移动端该愈来愈受到重视,未来的市场我不知道,不过我知道手机的功能越来越强大是不争的事实!移动端布局的积累也需要从现在做起! 需求一:实现下图 ...

  9. 移动端布局 - REM方式

    默认以宽度为640px的设计稿为基准页面,然后通过JS获取当前显示设备的尺寸,对应的调整 html 标签的font-size大小,从而实现通过以rem为单位的移动端布局适配. 具体代码 (functi ...

随机推荐

  1. php计算两个时间段内的 工作日 工作小时

    <?php class WorkTime { // 定义工作日 [1, 2, 3, 4, 5, 6, 0] public $week_workingday = [1, 2, 3, 4, 5]; ...

  2. ASP.NET Core Blazor Webassembly 之 渐进式应用(PWA)

    Blazor支持渐进式应用开发也就是PWA.使用PWA模式可以使得web应用有原生应用般的体验. 什么是PWA PWA应用是指那些使用指定技术和标准模式来开发的web应用,这将同时赋予它们web应用和 ...

  3. Idea 可用激活方式

    链接:https://pan.baidu.com/s/14ljbzMJ6uF9zKcQ575ftFA 提取码:yd54

  4. 4. union-find算法

    算法的主题思想: 1.优秀的算法因为能够解决实际问题而变得更为重要: 2.高效算法的代码也可以很简单: 3.理解某个实现的性能特点是一个挑战: 4.在解决同一个问题的多种算法之间进行选择时,科学方法是 ...

  5. LIMS产品 - Labware

    软件架构 客户端:Labware软件,部分C/S功能 Web服务:Apache Tomcat等,部分B/S功能 后台服务:计划.调度程序,环境监控样.稳定性研究等 数据库驱动:ODBC 报表工具:水晶 ...

  6. JAVA集合框架 - Map接口

    Map 接口大致说明(jdk11): 整体介绍: 一个将键映射到值的(key-value)对象, 键值(key)不能重复, 每个键值只能影射一个对象(一一对应). 这个接口取代了Dictionary类 ...

  7. Elastic认证考试,请先看这一篇

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/wojiushiwo987/article ...

  8. FRP+WoL实现远程开机+远程桌面

    FRP+WoL实现远程开机+远程桌面 故事背景 这是一个很复杂而且很久远的故事,如果要讲的话,这个故事可以追溯到1981年(「都是废话,没有干货,如果不感兴趣请从第二章开始」),简单来说: 1981年 ...

  9. SpringCloud 断路器之Hystrix

    Hystrix-断路器 在分布式环境中,许多服务依赖项中的一些必然会失败.Hystrix是一个库,通过添加延迟容忍和容错逻辑,帮助你控制这些分布式服务之间的交互.Hystrix通过隔离服务之间的访问点 ...

  10. 使用TransferLearning实现环视图像的角点检测——Tensorflow+MobileNetv2_SSD

    环境说明 依赖环境安装eIQ官方指南: name: eiq_auto channels: - conda-forge - defaults dependencies: - numpy=1.18.1=p ...