当前位置: 首页 > news >正文

如何用ps做网站首页的图片上海设计院

如何用ps做网站首页的图片,上海设计院,网络维护合同模板,医院网站开发百度文库文章底部有个人公众号#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享#xff1f; 踩过的坑没必要让别人在再踩#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官#xff1a;为什么data属性是一个函… 文章底部有个人公众号热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享 踩过的坑没必要让别人在再踩自己复盘也能加深记忆。利己利人、所谓双赢。 面试官为什么data属性是一个函数而不是一个对象 一、实例和组件定义data的区别 vue实例的时候定义data属性既可以是一个对象也可以是一个函数 const app new Vue({el:#app,// 对象格式data:{foo:foo},// 函数格式data(){return {foo:foo}} })组件中定义data属性只能是一个函数 如果为组件data直接定义为一个对象 Vue.component(component1,{template:div组件/div,data:{foo:foo} })则会得到警告信息 警告说明返回的data应该是一个函数在每一个组件实例中 二、组件data定义函数与对象的区别 上面讲到组件data必须是一个函数不知道大家有没有思考过这是为什么呢 在我们定义好一个组件的时候vue最终都会通过Vue.extend()构成组件实例 这里我们模仿组件构造函数定义data属性采用对象的形式 function Component(){} Component.prototype.data {count : 0 }创建两个组件实例 const componentA new Component() const componentB new Component()修改componentA组件data属性的值componentB中的值也发生了改变 console.log(componentB.data.count) // 0 componentA.data.count 1 console.log(componentB.data.count) // 1产生这样的原因这是两者共用了同一个内存地址componentA 修改的内容同样对componentB 产生了影响 如果我们采用函数的形式则不会出现这种情况函数返回的对象内存地址并不相同 function Component(){this.data this.data() } Component.prototype.data function (){return {count : 0} }修改componentA组件data属性的值componentB中的值不受影响 console.log(componentB.data.count) // 0 componentA.data.count 1 console.log(componentB.data.count) // 0vue组件可能会有很多个实例采用函数返回一个全新data形式使每个实例对象的数据不会受到其他实例对象数据的污染 三、原理分析 首先可以看看vue初始化data的代码data的定义可以是函数也可以是对象 源码位置/vue-dev/src/core/instance/state.js function initData (vm: Component) {let data vm.$options.datadata vm._data typeof data function? getData(data, vm): data || {}... }data既能是object也能是function那为什么还会出现上文警告呢 别急继续看下文 组件在创建的时候会进行选项的合并 源码位置/vue-dev/src/core/util/options.js 自定义组件会进入mergeOptions进行选项合并 Vue.prototype._init function (options?: Object) {...// merge optionsif (options options._isComponent) {// optimize internal component instantiation// since dynamic options merging is pretty slow, and none of the// internal component options needs special treatment.initInternalComponent(vm, options)} else {vm.$options mergeOptions(resolveConstructorOptions(vm.constructor),options || {},vm)}...}定义data会进行数据校验 源码位置/vue-dev/src/core/instance/init.js 这时候vm实例为undefined进入if判断若data类型不是function则出现警告提示 strats.data function (parentVal: any,childVal: any,vm?: Component ): ?Function {if (!vm) {if (childVal typeof childVal ! function) {process.env.NODE_ENV ! production warn(The data option should be a function that returns a per-instance value in component definitions.,vm);return parentVal;}return mergeDataOrFn(parentVal, childVal);}return mergeDataOrFn(parentVal, childVal, vm); };四、结论 根实例对象data可以是对象也可以是函数根实例是单例不会产生数据污染情况组件实例对象data必须为函数目的是为了防止多个组件实例对象之间共用一个data产生数据污染。采用函数的形式initData时会将其作为工厂函数都会返回全新data对象
http://www.pierceye.com/news/515603/

相关文章:

  • 租车网站模版广州市网站建设 骏域
  • 关闭网站怎么不保存我做的更改人工智能专业
  • ui中有哪些做的好看的网站简单logo设计
  • 深圳大型网站设计公司校园 网站建设 知乎
  • 西部数码网站流量怎么充优化网站界面的工具
  • 街区网站建设东阳市住房和城乡建设局网站
  • 怎样建设网站是什么网站代码制作软件
  • 成华区微信网站建设计公司加盟
  • 找个男做那个视频网站好高端网站建设公司
  • 做网站 毕业设计广东手机网页制作
  • 沈阳口碑最好的男科医院seo排名优化什么意思
  • 光谷做网站推广价格手机网站 教程
  • 泉州做网站多少钱关键词排名快照优化
  • 威海网站建设费用网站不能调用样式
  • 网站链接建设及引流营销世界500强企业中国有几家
  • 哪个网站做网络推好推广引流的10个渠道
  • 上海企业一网通办沂seo网站推广
  • 资阳网站网站建设官方网站建设公司
  • 企业网站建设一条龙服务内容如何自己免费创建网站
  • 重庆智能网站建设多少钱临海做网站
  • 创建好网站如何把浏览器合肥道路建设从哪个网站可以看到
  • 湖北省和建设厅网站自助建站模板
  • 西安网站建设 美科动seo关键词优化哪个平台好
  • 副食店年报在哪个网站做mc建筑网站
  • 网站建设不足之处2017网站设计尺寸
  • 网站架构招聘怎么免费的安装wordpress主题
  • 海天建设集团网站深圳西乡地铁站
  • 上海html5网站建设第九影院用wordpress版权信息
  • 东莞网站建设运营方案尺寸在线做图网站
  • 萍乡网站推广陕西省住房和城乡建设厅网站上查询