明确了!国家发布程序员和搬砖民工一样,都是农民工!

简介: 前几天我们发现,人社局官网发布了一则报告,显示软件开发和信息技术服务业都属于新生农工,不只是码农,所有在互联网工作者(户籍在老家的)都属于民工。

前言


前几天我们发现,人社局官网发布了一则报告,显示软件开发和信息技术服务业都属于新生农工,不只是码农,所有在互联网工作者(户籍在老家的)都属于民工。

编辑


怎么解释新生代农民工?


新生代乡籍工指的是在1980年及之后出生的,进城从事非农业生产6个月及以上的,常住地在城市,户籍地在乡村的劳动力,是新时代的产业工人。他们很早进入社会,游离于城市和乡村之间,基本没有从事过农业生产,不像父辈那般依恋乡村。他们努力想变得和城市里的同龄人一样,但受到经济收入、文化程度等种种因素制约,城市对于他们来说依然没有归属感。2010年1月31日,国务院发布的2010年中央一号文件《关于加大统筹城乡发展力度 进一步夯实农业农村发展基础的若干意见》中,首次使用了“新生代乡籍工”的提法,并要求采取有针对性的措施,着力解决新生代乡籍工问题,让新生代乡籍工市民化。



2019年确定程序员属于密集型劳动者


其实早在2019年的 国庆70周年的十一,官报发布感谢信,我悄悄发现,程序员首次被提上了劳动人名的行列,应该值得大家尊敬,在为祖国发展的列车中,互联网贡献不少力量,而程序员就是这其中的中坚力量,我们默默付出着,为祖国的繁荣昌盛舔砖加瓦。


996行业风波,确实让外界揭开了程序员这个新时代工种的神秘面纱,让更多的人知道技术人工作忙碌,时间长,强度大!也预示着程序员被行业渐渐认可,已不再是非服务业工作了,而是和工人,农民,底层劳动者一样,属于劳动者,是建设祖国的大军。


新生代民工确实非常形象:


1、码农和民工都是为了生活,背井离乡


2、两者都靠技术活吃饭,农民工是体力活,码农不但靠脑力活,还要拼体力。


3 、基本都在工作地买不房子,民工住工地宿舍,码农住隔断单间。


4、两者吃饭基本吃食堂的工作餐,无其他高消费。


5、码农和民工都舍不得花钱,老实憨厚,容易满足。


同行们自嘲很久的码农终于被正名了。大家对这个新生代农民工的称号还满意吗?


Vue 进阶系列教程将在本号持续发布,一起查漏补缺学个痛快!若您有遇到其它相关问题,非常欢迎在评论中留言讨论,达到帮助更多人的目的。若感本文对您有所帮助请点个赞吧!


2013年7月28日,尤雨溪第一次在 GItHub 上为 Vue.js 提交代码;2015年10月26日,Vue.js 1.0.0版本发布;2016年10月1日,Vue.js 2.0发布。


最早的 Vue.js 只做视图层,没有路由, 没有状态管理,也没有官方的构建工具,只有一个库,放到网页里就可以直接用了。


后来,Vue.js 慢慢开始加入了一些官方的辅助工具,比如路由(Router)、状态管理方案(Vuex)和构建工具(Vue-cli)等。此时,Vue.js 的定位是:The Progressive Framework。翻译成中文,就是渐进式框架。


Vue.js2.0 引入了很多特性,比如虚拟 DOM,支持 JSX 和 TypeScript,支持流式服务端渲染,提供了跨平台的能力等。Vue.js 在国内的用户有阿里巴巴、百度、腾讯、新浪、网易、滴滴出行、360、美团等等。


Vue 已是一名前端工程师必备的技能,现在就让我们开始深入学习 Vue.js 内部的核心技术原理吧!


什么是 mixin


mixin 是 Vue 提供的一种代码复用技术,也叫做混入。我们可以在 mixin 中定义组件中的所有选项,比如 data、methods 以及各种生命周期钩子。然后在我们的组件中引入已定义的 mixin,这时我们在 mixin 中定义的所有内容,就像灵魂附体一般和我们的组件融合了。通常用在抽离组件中重复内容的时候,减少代码冗余度。


怎么定义 mixin


定义 mixin 分为局部注册和全局注册两种,我们先来看局部注册。


局部注册


// a.js
export default {
    created(){
        console.log('mixin created')
    },
    data(){
        return {
            name:'mixin-name'
        }
    }
}
// App.vue
<template>
  <div class=''></div>
</template>
<script>
import a_mixin from './a.js'
export default {
  mixins:[a_mixin],
  mounted() {
    console.log('name',this.name)
  }
}
</script>
// mixin created
// name mixin-name


上方代码中,我们现在 a.js 中定义了一个普通对象,对象内部包含 created 钩子函数和 data 函数,然后在 App.vue 组件内部通过 mixins 选项,混入了a.js定义的内容。执行结果就是输出了mixin created 和 name mixin-name 。定义的 created 和 data 都混入了 App.vue。但是当 mixin 中定义的内容,和 App.vue重复了怎么办呢?


全局注册


通过 Vue 提供的 Vue.mixin() 函数,只需要我们在 main.js 中引入我们定义的mixin 文件,然后通过传入 Vue.mixin() 中即可。这时候,我们每一个组件都可以使用 mixin 中的内容了,且不需要 mixins 选项引入。


// a.js
export default {
    created(){
        console.log('mixin created')
    },
    data(){
        return {
            name:'mixin-name'
        }
    }
}
// main.js
import a_mixin from './a.js'
Vue.mixin(mixin)


mixin 和组件的重复项


对于 mixin 和组件之间的重复项,根据选项的不同,解决方案也不一样。


对象形式的选项,比如 data、methods、computed、components:如果没有重复项,会将 mixin 中的和 App.vue 中的进行合并,是并集的操作。如果存在重复项,那么最终会保留 App.vue 的数据。


// a.js
export default {
    created(){
        console.log('mixin created')
    },
    data(){
        return {
            name:'mixin-name'
        }
    }
}
// App.vue
<template>
  <div class=''></div>
</template>
<script>
import a_mixin from './a.js'
export default {
  data(){
    return {
      name:'app-name'
    }
  },
  mixins:[a_mixin],
  mounted() {
    console.log('name',this.name)
  }
}
</script>
// mixin created
// name app-name


函数形式的,比如生命周期钩子函数:对于 mixin 中定义的生命周期钩子函数和 App.vue 中的生命周期钩子函数都会被保留,并且优先执行mixin中的生命周期钩子。


// a.js
export default {
    created(){
        console.log('mixin created')
    },
    data(){
        return {
            name:'mixin-name'
        }
    }
}
// App.vue
<template>
  <div class=''></div>
</template>
<script>
import a_mixin from './a.js'
export default {
  data(){
    return {
      name:'app-name'
    }
  },
  mixins:[a_mixin],
  created(){
    console.log('app created') 
  }
}
</script>
// mixin created
// app created


组件间相互隔离


mixin 定义的变量,在各个组件之间是相互隔离的,在一个组件修改值,其他组件不会改变。


// a.js
export default {
    created(){
        console.log('mixin created')
    },
    data(){
        return {
            name:'mixin-name'
        }
    }
}
// App.vue
<template>
  <div class=''></div>
</template>
<script>
import a_mixin from './a.js'
export default {
  mixins:[a_mixin],
  mounted(){
    this.name = 'appName'
    console.log('app_name',this.name)  // appName
  }
}
</script>
// Home.vue
<template>
  <div class=''></div>
</template>
<script>
import a_mixin from './a.js'
export default {
  mixins:[a_mixin],
  mounted(){
    console.log('home_name',this.name)  // mixin_name
  }
}
</script>


与 Vuex 的区别


vuex : 组件之间的状态管理,在一个组件中修改状态的值,其他组件中当前状态也会随之改变。


mixin: 用来复用重复代码的,在每个组件之间相互隔离,在一个组件修改值,其他组件不会改变。


与公共组件的区别


公共组件:公共组件是封装一个独立的部分,和父组件之间本质上还是两个组件。


mixin:mixin 是通过组件中混入我们的 mixin,对属性进行合并,本质上还是一个组件。


总结:


Vue 进阶系列教程将在本号持续发布,一起查漏补缺学个痛快!若您有遇到其它相关问题,非常欢迎在评论中留言讨论,达到帮助更多人的目的。若感本文对您有所帮助请点个赞吧!

相关文章
|
存储 安全 算法
Qt QStack 详解:从底层原理到高级用法
Qt QStack 详解:从底层原理到高级用法
734 0
|
存储 API C++
【Qt 信号槽】深入探索 Qt 信号和槽机制中的引用传递“ (“A Deep Dive into Reference Passing in Qt Signal and Slot Mechanism“)
【Qt 信号槽】深入探索 Qt 信号和槽机制中的引用传递“ (“A Deep Dive into Reference Passing in Qt Signal and Slot Mechanism“)
1565 0
|
SQL 关系型数据库 MySQL
Hive跨集群和版本迁移
Hive跨集群和版本迁移
|
10月前
|
存储 网络安全 对象存储
《用阿里云 OSS+CDN 搭建个人静态博客,成本不到 10 元 / 月》
用阿里云OSS+CDN搭建个人静态博客,成本低至每月5-10元。通过Hexo或Hugo生成静态文件,上传至OSS并开启静态网站托管,再结合CDN加速与自定义域名,轻松实现高效、稳定访问,无需维护服务器,适合个人开发者快速建站。
|
机器学习/深度学习 人工智能 JSON
这个AI把arXiv变成代码工厂,快速复现顶会算法!Paper2Code:AI论文自动转代码神器,多智能体框架颠覆科研复现
Paper2Code是由韩国科学技术院与DeepAuto.ai联合开发的多智能体框架,通过规划、分析和代码生成三阶段流程,将机器学习论文自动转化为可执行代码仓库,显著提升科研复现效率。
2216 19
这个AI把arXiv变成代码工厂,快速复现顶会算法!Paper2Code:AI论文自动转代码神器,多智能体框架颠覆科研复现
|
算法 Java JavaScript
规则引擎
我是阿里巴巴做规则引擎相关工作多年的java工程师一枚,本职工作就是通过规则引擎、规则管理平台等技术输出,来应对阿里巴巴复杂多变的上层规则相关业务的支持。限于技术保密、安全等因素,本文只讲一些个人对“规则引擎”的看法,欢迎大家一起探讨。
27310 1
|
网络协议 数据安全/隐私保护 网络架构
OSI七层模型和TCPIP五层模型
OSI七层模型和TCPIP五层模型
|
存储 运维 安全
上云迁移的五个步骤,企业私有云的详细教程
上云迁移的五个步骤,企业私有云的详细教程
|
人工智能 运维 安全
更低成本、更高效、更安全!阿里云与钉钉联合推出协同办公AI解决方案
阿里云与钉钉携手推出了全新的“钉钉·AI Stack一体机”,以“低成本、高安全、零门槛”为核心,为用户提供基于钉钉,从模型部署到全员落地的AI解决方案,开启智能化办公的“一键加速”。
2344 1
|
JavaScript
vue element-ui 中el-message重复弹出问题解决 el-message重复弹出解决办法
vue element-ui 中el-message重复弹出问题解决 el-message重复弹出解决办法
1429 49