“Vue”的版本间的差异

来自tomtalk
跳转至: 导航搜索
vscode配置
Tom讨论 | 贡献
Vue页面结构
第49行: 第49行:
 
         }
 
         }
 
     ]
 
     ]
 +
}
 +
</source>
 +
 +
==ESLint配置==
 +
<source lang="javascript">
 +
"eslint.options": {
 +
    "rules": {
 +
        "semi": [0],
 +
        "quotes": [0, "double"],
 +
        "space-before-function-paren": [0, "always"]
 +
    }
 
}
 
}
 
</source>
 
</source>

2021年3月26日 (五) 08:20的版本

vscode配置

插件

  • Vetur
  • Prettier
  • ESLint
  • Vim

settings.json配置文件

{
    "editor.renderIndentGuides": false,
    "editor.wordWrapColumn": 150,
    "editor.tabSize": 2,
    "editor.formatOnSave": true, //每次保存自动格式化
    "editor.rulers": [
        150
    ],
    "html.format.wrapLineLength": 150,
    "prettier.singleQuote": true, //使用带引号替代双引号
    "vetur.format.defaultFormatter.html": "js-beautify-html", //格式化.vue中html
    "vetur.format.defaultFormatter.js": "vscode-typescript", //让vue中的js按编辑器自带的ts格式进行格式化
    "vetur.format.defaultFormatterOptions": {
        "js-beautify-html": {
            "wrap_line_length": 150,
            "wrap_attributes": "auto",
            "end_with_newline": false
        }
    },
    "[javascript]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode",
    },
    "[vue]": {
        "editor.defaultFormatter": "octref.vetur"
    },
    "eslint.autoFixOnSave": true, // 每次保存的时候将代码按eslint格式进行修复
    "eslint.validate": [ //开启对.vue文件中错误的检查
        "javascript",
        "javascriptreact",
        {
            "language": "html",
            "autoFix": true
        },
        {
            "language": "vue",
            "autoFix": true
        }
    ]
}

ESLint配置

"eslint.options": {
    "rules": {
        "semi": [0],
        "quotes": [0, "double"],
        "space-before-function-paren": [0, "always"]
    }
}

Vue页面结构

<template>
    <div class="page">something</div>
</template>
 
<script>
import sc from "@/mixins/index";
import Country from "@/components/Country.vue";
import { mapState, mapMutations } from "vuex";
import code from "@/utils/code";
import { uploadSingleFile } from "@/api";
import { checkResidentNumberIsExistForProduct } from "@/api";
import utils from "@tplhk-ui/utils";
export default {
    name: "Application",
    mixins: [sc],
    components: { Country },
    data() {
        return {
            payment: this.$t("payment"),
            rules: {
                englishFamilyName: {
                    required: true,
                    validator: this.baseValidate.bind(this, /^[A-Za-z ]*$/),
                    trigger: "blur"
                }
            }
        };
    },
    computed: {
        ...mapState(["forms", "style", "premium"])
    },
    watch: {
        "forms.residentCode": function(newValue) {
            this.residentCodeFn(newValue);
        }
    },
    created() {
        if (this.$route.name === "confirm") {
            this.disabled = true;
        }
        this.residentCodeFn(this.forms.residentCode);
        Options.getPolicyPlanAlipay()
            .then(res => (this.policyPlanOpt = res))
            .catch(() => {});
    },
    methods: {
        ...mapMutations(["set_forms", "set_state"]),
        residentCodeFn(newValue) {
            let flag = newValue === "NPHK" ? true : false;
            this.rules.nationalityCode.required = flag;
        }
    }
};
</script>
 
<style lang="scss">
.tpl-form-item-required .tpl-form-item-label:before {
    content: "";
}
</style>