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. Vmaware克隆虚拟机后无法上网

    问题: 使用快照克隆了一台虚拟机 打开后发现无法上网,ifconfig查看状态 解决办法: 1.点击右下角的网络设置,点击设置,查看mac地址与文件/etc/udev/rules.d/70-persi ...

  2. windows RN 环境搭建(实测心得)

    首先安装官网的装好依赖   这里特别敲掉的是 jdk 必须要1.8的才行: 装了node 就不要 py了.   官网 其次安装 android studio 开发工具 把对应的都装好:     这里的 ...

  3. 流媒体学习计划表——pr

    参考教程 视频:b站oeasy 书籍:<adobe premiere pro cc 2018经典教程> 学习教训 一定要多做--实践是检验真理的唯一标准 书籍补充理论知识,视频讲究实操(理 ...

  4. (一)、Java内存模型

    简述 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM),来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效 ...

  5. Spring声明周期的学习心得

    我们首先来看下面的一个案例: 这里是 HelloWorld.java 文件的内容: package com.yiibai;    public class HelloWorld {   private ...

  6. Git的常用命令记录

    Git的常用命令记录 1.与远程仓库建立连接,即关联一个远程库 git remote add origin git@server-name:path/repo-name.git; 2.查看当前分支  ...

  7. 状态机模式 与 ajax 的结合运用

    太神奇了,昨晚做了个梦,梦中我悟出一个道理:凡是涉及到异步操作而且需要返回值的函数,一定要封装成 Promise 的形式,假如返回值取决于多个异步操作的结果,那么需要对每个异步操作进行状态的设计,而且 ...

  8. 黑鸟码表BB10S骑行记录导入行者

    前言 开始骑车用行者app记录, 后来觉得每次都要开app很麻烦, 于是在骑友的推荐下入手了黑鸟BB10S, 使用了一段时间感觉还不错, 不过也遇到之前大家说的问题, 黑鸟不支持直接导出fit文件, ...

  9. PKIX

    这是证书认证不通过的问题,对https协议免认证 http://blog.csdn.net/zziamalei/article/details/46520797 使用上面的方法时,使用spring的& ...

  10. 打造属于你的聊天室(WebSocket)

    SpringBoot 是为了简化 Spring 应用的创建.运行.调试.部署等一系列问题而诞生的产物,自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖 ...