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. java scoket Blocking 阻塞IO socket通信一

    package bhz.bio; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; p ...

  2. 在Ubuntu上实现人脸识别登录

    安装Howdy: howdy项目地址 sudo add-apt-repository ppa:boltgolt/howdy sudo apt update sudo apt install howdy ...

  3. Spring AOP学习笔记05:AOP失效的罪因

    前面的文章中我们介绍了Spring AOP的简单使用,并从源码的角度学习了其底层的实现原理,有了这些基础之后,本文来讨论一下Spring AOP失效的问题,这个问题可能我们在平时工作中或多或少也会碰到 ...

  4. 数据库周刊30丨数据安全法草案将亮相;2020数据库产业报告;云南电网上线达梦;达梦7误删Redo Log;Oracle存储过程性能瓶颈;易鲸捷实践案例……

    摘要:墨天轮数据库周刊第30期发布啦,每周1次推送本周数据库相关热门资讯.精选文章.干货文档. 热门资讯 1.数据安全法草案即将亮相:将确立数据分级分类管理.应急处置制度[摘要]数据安全法草案即将在本 ...

  5. (私人收藏)商务工作学习万能简约大气PPT模板

    商务工作学习万能简约大气PPT模板 https://pan.baidu.com/s/1aPnPZ285N5VSSErro1cPngehoa

  6. HashMap等集合初始化时应制定初始化大小

    阿里巴巴开发规范中,推荐用户在初始化HashMap时,应指定集合初始值大小. 一.原因 这个不用多想,肯定是效率问题,那为什么会造成效率问题呢? 当我们new一个HashMap没有对其容量进行初始化的 ...

  7. day14 参数

    目录 一.参数介绍 二.形参与实参的具体使用 2.1位置参数 2.2关键字参数 2.3关键字实参和位置实参混合使用时 2.4默认参数 2.5位置形参和默认形参混用 2.6 可变长度的参数(*与**用法 ...

  8. Maven 专题(八):配置(一)常用修改配置

    修改配置文件 通常我们需要修改解压目录下conf/settings.xml文件,这样可以更好的适合我们的使用. 此处注意:所有的修改一定要在注释标签外面,不然修改无效.Maven很多标签都是给的例子, ...

  9. 前端05 /js基础

    前端05 /js基础 昨日内容回顾 css选择器的优先级 行内(1000) > id(100) > 类(10) > 标签(1) > 继承(0) 颜色 rgb(255,255,2 ...

  10. AcWing 1208. 翻硬币

    AcWing 1208. 翻硬币 原题链接 小明正在玩一个"翻硬币"的游戏. 桌上放着排成一排的若干硬币.我们用 * 表示正面,用 o 表示反面(是小写字母,不是零). 比如,可能 ...