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. Magicodes.IE在.NET Core中通过请求头导出多种格式文件

    前言 在2.2里程碑中我们增加了一些新的功能,正如标题所写通过请求头进行导出我们不同格式的文件.下面我们来看一下如何使用.通过这种方式无论是对我们的数据多用途,还是说对我们的数据校验都做到了轻松易配. ...

  2. 为页内的tab添加的iframe添加加载动画过渡效果

    var iframe = $("iframe[data-id=" + id + " ]"); if (iframe.length > 0) { var e ...

  3. Linux上的Systemctl命令

    LinuxSystemctl是一个系统管理守护进程.工具和库的集合,用于取代System V.service和chkconfig命令,初始进程主要负责控制systemd系统和服务管理器.通过Syste ...

  4. PHP输入流

    PHP输入流php://input,对于这个的官方解释是: php://input可以读取没有处理过的POST数据.相较于$HTTP_RAW_POST_DATA而言,它给内存带来的压力较小,并且不需要 ...

  5. Java面向对象(一)类和对象

    面向过程和面向对象的区别 面向过程,强调的是功能行为,是将实现一个功能的步骤编写在一个函数中,以函数为最小单位. 面向对象,是将需要的功能封装进一个对象中,使一个对象具有很多的功能特征,以类/对象为最 ...

  6. web开发相关概念

    什么是web通信? WEB采用B/S通信模式,通过超文本传送协议(HTTP, Hypertext transport protocol)进行通信.通过浏览器地址栏编写URL,向服务器发送一个请求,服务 ...

  7. Kafka 可视化监控和管理 UI工具评估

    以下内容,来自网络资料整理和个人安装使用结果.后续会持续更新

  8. [Python] datetime.timedelta模块用法

    python使用datetime模块timedelta实现日期时间相加: python计算明天的日期: from datetime import datetime from datetime impo ...

  9. TensorFlow中的显存管理器——BFC Allocator

    背景 作者:DeepLearningStack,阿里巴巴算法工程师,开源TensorFlow Contributor] 使用GPU训练时,一次训练任务无论是模型参数还是中间结果都需要占用大量显存.为了 ...

  10. css实现1px 像素线条_解决移动端1px线条的显示方式

    使用CSS 绘制出 1px 的边框,在移动端上渲染的效果会出现不同,部分手机发现1px 线条变胖了,这篇文章整理2种方式实现1px 像素线条. 1.利用box-shadow + transform & ...