vue 单文件组件最佳实践

生命周期 template

  1. <template>
  2. <section>
  3. <h1>vue single file components template best practices</h1>
  4. <GlobalFilter
  5. :filterItems="filterItems"
  6. />
  7. </section>
  8. </template>
  9. <script>
  10. // utils
  11. import Utils from '@/utils';
  12. // config
  13. import Config from '@/config';
  14. // service
  15. import GlobalFilter from '@/components/global-filter';
  16. // service
  17. import CommonService from '@/services/commonService';
  18. const log = console.log;
  19. export default {
  20. name: 'VSFCTBP',
  21. components: {
  22. GlobalFilter,
  23. },
  24. props: {
  25. obj: {
  26. type: Object,
  27. default: () => ({}),
  28. required: true,
  29. },
  30. arr: {
  31. type: Object,
  32. default: () => [],
  33. required: true,
  34. },
  35. bool: {
  36. type: Boolean,
  37. default: false,
  38. required: true,
  39. },
  40. str: {
  41. type: String,
  42. default: '',
  43. required: true,
  44. },
  45. num: {
  46. type: Number,
  47. default: 0,
  48. required: true,
  49. },
  50. },
  51. data () {
  52. return {
  53. title: 'title',
  54. desc: 'description',
  55. loading: false,
  56. filterItems: {
  57. region: 'zh-Hans',
  58. },
  59. startTime: '',
  60. endTime: '',
  61. };
  62. },
  63. computed: {
  64. time () {
  65. return this.endTime - this.startTime;
  66. },
  67. },
  68. watch: {
  69. '$route.query' (val, oldval) {
  70. log(`new $route.query`, val, oldval);
  71. },
  72. '$route.params' (val) {
  73. log(`new $route.params`, val, oldval);
  74. },
  75. },
  76. beforeCreated () {
  77. //
  78. },
  79. created () {
  80. //
  81. },
  82. mounted () {
  83. this.init();
  84. },
  85. destroyed () {
  86. //
  87. },
  88. methods: {
  89. init () {
  90. this.fetchAPI();
  91. },
  92. async fetchAPI () {
  93. this.loading = true;
  94. const {
  95. data,
  96. msg,
  97. status,
  98. } = await fetch(`/api/v3/getUsers`)
  99. // const res = await fetch(`/api/v3/getUsers`)
  100. .then(res => res.json())
  101. .then(json => {
  102. log(`fetch ok =`, json);
  103. return json;
  104. })
  105. .catch(err => {
  106. log(`fetch error =`, err);
  107. return err;
  108. })
  109. .finally((ok, err) => {
  110. this.loading = false;
  111. });
  112. },
  113. },
  114. };
  115. </script>
  116. <style lang="scss">
  117. .container {
  118. box-sizing: border-box;
  119. display: flex;
  120. flex-flow: row nowrap;
  121. align-items: center;
  122. justify-content: space-between;
  123. .item {
  124. color: #0f0;
  125. }
  126. }
  127. </style>

refs



xgqfrms 2012-2020

www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有️xgqfrms, 禁止转载 ️,侵权必究️!


vue 单文件组件最佳实践的更多相关文章

  1. webpack入坑之旅(五)加载vue单文件组件

    这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...

  2. Vue单文件组件

    前面的话 本文将详细介绍Vue单文件组件 概述 在很多 Vue 项目中,使用 Vue.component 来定义全局组件,紧接着用 new Vue({ el: '#container '}) 在每个页 ...

  3. vue 单文件组件

    在很多vue项目中,我们使用vue.component来定义全局组件,紧接着用new Vue({el:'#container'})在每个页面内指定一个容器元素 这种方式在很多中小规模的项目中运作的很好 ...

  4. webpack打包vue单文件组件

    一.vue单文件组件 ①文件扩展名为 .vue 的 就是single-file components(单文件组件) ②参考文档:单文件组件 二.webpack加载第三方包 ①项目中,如果需要用到一些第 ...

  5. ts-loader如何与vue单文件组件衔接

    .ts-loader是如何与vue单文件组件衔接作用的 https://github.com/microsoft/TypeScript-Vue-Starter https://www.npmjs.co ...

  6. 基于VSCode的vue单文件组件模板设置---一次设置,可爽终生

    第一步: 第二步: 第三步: 打开vue.json文件后,如果是初次设置,应该如下图所示,绿色注释部分不用管,注意那两个白色大括号 第四步:在大括号内全部粘贴如下代码,保存即可完成vue模板的设置 & ...

  7. vue单文件组件的构建

    在很多Vue项目中,我们使用 Vue.component 来定义全局组件,这种方式在很多中小规模的项目中运作的很好. 但当在更复杂的项目中,就有了很大的弊端. 我们就可以用文件扩展名 .vue的单文件 ...

  8. Vue单文件组件基础模板

    背景 相信大家在使用Vue开发项目时,基本都是以单文件组件的形式开发组件的,这种方式好处多多: 1.代码集中,便于开发.管理和维护 2.可复用性高,直接将vue文件拷贝到新项目中 我暂时就想到这两点, ...

  9. 【原】vue单文件组件互相通讯

    在vue中,我们可以把一个页面各个部分单独封装起来,做成各种小组件,然后加载,这样的好处是代码维护起来比较容易,重复的代码多处调用! 在一个vue项目中,单文件组件以.vue形式文件命名 每个组件之间 ...

随机推荐

  1. 导出带有图片的excel

    public static void main(String[] args) { try { FileOutputStream out = new FileOutputStream("d:\ ...

  2. Any race is a bug. When there is a race, the compiler is free to do whatever it wants.

    https://mp.weixin.qq.com/s/pVJiFdDDKVx707eKL19bjA 谈谈 Golang 中的 Data Race 原创 ms2008 poslua 2019-05-13 ...

  3. LINUX动态库(.SO)搜索路径(目录)设置方法

    LINUX动态库(.SO)搜索路径(目录)设置方法 [root@VM_0_11_centos ld.so.conf.d]# cat /etc/ld.so.confinclude ld.so.conf. ...

  4. 服务之间的调用为啥不直接用 HTTP 而用 RPC?

    什么是 RPC?RPC原理是什么? 什么是 RPC? RPC(Remote Procedure Call)-远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.比 ...

  5. Excel三个下拉互斥

    Excel三个下拉互斥 描述:Excel有三个下拉列表,若选择了其中任意一个下拉,其他两个均不可以在选择. 尝试了很多种办法,级联,数据有效性等等,最后都没实现. 老大,最后用VBA实现. 附上代码: ...

  6. chrome标签记录——关于各类性能优化

    概述 详情 概述 平时经常浏览各大博客,总感觉要学习和需要学习的内容太多太多,而自己的个人能力还不足够写出一些好的文章出来,就只能通过学习他人的东西不断提升自己的实力,然后就会记录收藏各种优秀的博客资 ...

  7. MySQL数据库操作生成UUID

    问题描述: 通过数据库操作,生成无横线的uuid,同时插入至数据库之中. 因为我要给项目做一些测试数据,项目的主键为32位无'-'的uuid,然后在数据库中,通过数据库操作,然后插入一些测试数据. 生 ...

  8. 周期性清除Spark Streaming流状态的方法

    在Spark Streaming程序中,若需要使用有状态的流来统计一些累积性的指标,比如各个商品的PV.简单的代码描述如下,使用mapWithState()算子: val productPvStrea ...

  9. linux shell判断文件,目录是否存在或者具有权限

    在linux中判断文件,目录是否存在或则具有的权限,根据最近的学习以及网上的资料,进行了以下的总结: #!/bin/sh myPath="/var/log/httpd/" myFi ...

  10. redis防止重复提交

    public interface DistributedLock { boolean getLock(String var1, String var2, int var3);//加锁 void unL ...