vue全局配置loding
index.js
import Loading from "pub/components/loading/loading.vue";
class CreateLoading {
constructor(Vue){
this.instance =null;
this.LoadingC = Vue.extend(Loading);
this.vue = Vue
}
initInstance (){
// 创建子类实例
this.instance = new this.LoadingC({
el: document.createElement('div')
});
// 插到body里
document.body.appendChild(this.instance.$el);
this.vue.nextTick(() => {
instance.loading = true;
});
}
show(){
if (!this.instance) {
this.initInstance();
}
this.instance.loading = true;
}
hide(){
this.instance.loading = false;
}
}
export default{
install (Vue){
Vue.prototype.$loading = new CreateLoading(Vue)
}
}
loading.vue
<template>
<div>
<Spin fix v-if="loading">
<Icon type="ios-loading" size="18" class="demo-spin-icon-load" />
<div>Loading</div>
</Spin>
</div>
</template>
<script>
export default {
name: "loading",
data() {
return {
loading: false
};
}
};
</script>
<style lang="scss" scoped>
</style>
main.js
import Loading from '@/components/loading'
Vue.use(Loading)
同时启动多个项目的脚本文件的配置
https://www.npmjs.com/package/concurrently
子组件修改父组件的变量的方法
<parent :title.sync="title"><parent>
子组件中 this.$emit('update:title',val)
vw适配
安装插件
npm i postcss-loader postcss-aspect-ratio-mini postcss-px-to-viewport postcss-write-svg postcss-cssnext postcss-viewport-units cssnano --S
postcss.config.js的配置
module.exports = {
"plugins": {
"postcss-aspect-ratio-mini": {},
"postcss-write-svg": {
utf8: false
},
"postcss-px-to-viewport": {
viewportWidth: 750, // 视窗的宽度,对应的是我们设计稿的宽度,一般是750
viewportHeight: 1334, // 视窗的高度,根据750设备的宽度来指定,一般指定1334,也可以不配置
unitPrecision: 3, // 指定`px`转换为视窗单位值的小数位数(很多时候无法整除)
viewportUnit: 'vw', // 指定需要转换成的视窗单位,建议使用vw
selectorBlackList: ['.ignore', '.hairlines'], // 指定不转换为视窗单位的类,可以自定义,可以无限添加,建议定义一至两个通用的类名
minPixelValue: 1, // 小于或等于`1px`不转换为视窗单位,你也可以设置为你想要的值
mediaQuery: false, // 允许在媒体查询中转换`px`
exclude: /(\/|\\)(node_modules)|(upshelf)(\/|\\)/, //在node_modules文件里面的样式不转成vw
//landscape: true, // 是否添加根据landscapeWidth生成的媒体查询条件 @media (orientation: landscape)
//landscapeWidth: 2048 // 横屏时使用的视窗宽度
},
"postcss-viewport-units": {
filterRule: rule => rule.selector.includes('::after') && rule.selector.includes('::before') && rule.selector.includes(':after') && rule.selector.includes(':before')
},
"cssnano": {
autoprefixer: false,
"postcss-zindex": false
},
}
}