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

做游戏门户网站要注意什么白之家低成本做网站

做游戏门户网站要注意什么,白之家低成本做网站,做网站用什么域名好,如何在百度发广告推广Observable 翻译过来我们可以理解成可观察的 Vue.js2.6 新增 Vue.observable#xff0c;让一个对象变成响应式数据。Vue 内部会用它来处理 data 函数返回的对象 。 返回的对象可以直接用于渲染函数和计算属性内#xff0c;并且会在发生变更时触发相应的更新。也可以作为最小化…Observable 翻译过来我们可以理解成可观察的 Vue.js2.6 新增 Vue.observable让一个对象变成响应式数据。Vue 内部会用它来处理 data 函数返回的对象 。 返回的对象可以直接用于渲染函数和计算属性内并且会在发生变更时触发相应的更新。也可以作为最小化的跨组件状态存储器 Vue.observable({ count : 1}) 其作用等同于 new vue({ count : 1}) 在 Vue 2.x 中被传入的对象会直接被 Vue.observable 变更它和被返回的对象是同一个对象 在 Vue 3.x 中则会返回一个可响应的代理而对源对象直接进行变更仍然是不可响应的 Observable 是什么 Vue.observable 是 Vue.js 提供的一个 API它可以将一个普通的 JavaScript 对象转换为响应式对象。通过使用 Vue.observable可以在任何地方创建一个响应式对象而不仅仅是在 Vue 实例中使用。它在 Vue.js 的响应式系统中扮演了很重要的角色可以用于管理状态、状态共享等场景。 Observable 作用 使用 Vue.observable 可以将一个普通对象转换为响应式对象从而使其成为 Vue.js 的响应式系统的一部分。在转换之后可以对该对象进行读取、修改等操作并且在修改后Vue.js 会自动进行重新渲染。 解决了什么问题 Vue.observable 的出现解决了在 Vue.js 中管理状态的问题。在 Vue.js 中通过将状态保存在 Vue 实例的 data 属性中可以实现状态管理但是这种方式只能在 Vue 实例中使用无法在其他地方使用。通过使用 Vue.observable我们可以在任何地方创建一个响应式对象从而更加灵活地管理状态。 适用场景 在非父子组件通信时可以使用通常的bus或者使用vuex但是实现的功能不是太复杂而使用上面两个又有点繁琐。这时observable就是一个很好的选择。 举个例子 // utils.js 文件 import Vue from vue // 创建响应式对象 export const state Vue.observable({count: 1 })export const mutations Vue.observable({increase() {state.count} })// 在 vue 文件中使用 templatediv idappbutton clickincreaseCount/button{{ num }}/div /templatescript import { state, mutations } from /utils/index export default {name: App,computed: {num() {return state.count}},methods: {increaseCount: mutations.increase} } /script原理分析 源码位置src\core\observer\index.js export function observe (value: any, asRootData: ?boolean): Observer | void {if (!isObject(value) || value instanceof VNode) {return}let ob: Observer | void// 判断是否存在__ob__响应式属性if (hasOwn(value, __ob__) value.__ob__ instanceof Observer) {ob value.__ob__} else if (shouldObserve !isServerRendering() (Array.isArray(value) || isPlainObject(value)) Object.isExtensible(value) !value._isVue) {// 实例化Observer响应式对象ob new Observer(value)}if (asRootData ob) {ob.vmCount}return ob } Observer类 export class Observer {value: any;dep: Dep;vmCount: number; // number of vms that have this object as root $dataconstructor (value: any) {this.value valuethis.dep new Dep()this.vmCount 0def(value, __ob__, this)if (Array.isArray(value)) {if (hasProto) {protoAugment(value, arrayMethods)} else {copyAugment(value, arrayMethods, arrayKeys)}this.observeArray(value)} else {// 实例化对象是一个对象进入walk方法this.walk(value)} }walk函数 walk (obj: Object) {const keys Object.keys(obj)// 遍历key通过defineReactive创建响应式对象for (let i 0; i keys.length; i) {defineReactive(obj, keys[i])} } defineReactive方法 export function defineReactive (obj: Object,key: string,val: any,customSetter?: ?Function,shallow?: boolean ) {const dep new Dep()const property Object.getOwnPropertyDescriptor(obj, key)if (property property.configurable false) {return}// cater for pre-defined getter/settersconst getter property property.getconst setter property property.setif ((!getter || setter) arguments.length 2) {val obj[key]}let childOb !shallow observe(val)// 接下来调用Object.defineProperty()给对象定义响应式属性Object.defineProperty(obj, key, {enumerable: true,configurable: true,get: function reactiveGetter () {const value getter ? getter.call(obj) : valif (Dep.target) {dep.depend()if (childOb) {childOb.dep.depend()if (Array.isArray(value)) {dependArray(value)}}}return value},set: function reactiveSetter (newVal) {const value getter ? getter.call(obj) : val/* eslint-disable no-self-compare */if (newVal value || (newVal ! newVal value ! value)) {return}/* eslint-enable no-self-compare */if (process.env.NODE_ENV ! production customSetter) {customSetter()}// #7981: for accessor properties without setterif (getter !setter) returnif (setter) {setter.call(obj, newVal)} else {val newVal}childOb !shallow observe(newVal)// 对观察者watchers进行通知,state就成了全局响应式对象dep.notify()}}) }
http://www.w-s-a.com/news/789174/

相关文章:

  • 南京网站建设网站做视频网站用什么格式
  • 普陀做网站价格wordpress接入qq互联
  • 网站2级页面怎么做杭州哪家做外贸网站
  • 做了静态网站怎么显示在互联网上营销策划与运营方案
  • 常见的英文网站国内军事新闻大事件
  • 傻瓜式做网站程序微信怎么开公众号
  • c2c电商网站wordpress仿36kr主题
  • 网站建设公司开发免费图纸网站
  • 一个网站页面设计多少钱做预算查价格的网站是哪个
  • 鳌江哪里有做网站百度短链接在线生成
  • 有没有什么做水利资料的网站杭州建设信用平台
  • 电子商务网站建设及推广方案论文wordpress无法显示文章
  • 建设工程监理网站前端和后端分别需要学什么
  • 公司网站制作效果国内最好的在线网站建设
  • 徐州好点的做网站的公司有哪些wordpress 工具插件下载
  • 如何用云服务器建设网站微网站免费开发平台
  • 官网的网站设计公司做网站需要准备哪些东西
  • 程序员和做网站那个好找工作wordpress二维码 插件
  • 湖南城市建设技术学院官方网站青海省建设局网站
  • 响应式网站有什么区别百度网站官网
  • 金华企业自助建站系统长沙建站公司模板
  • 云主机 做网站友情链接网站
  • 定制型网站设计天津网站模板建站
  • 为什么公司网站打开很慢wordpress汉化插件
  • 用dw做教学网站做网站用什么配置笔记本
  • 秦皇岛网站制作服务无网站无产品链接如何做SOHO
  • 国际婚恋网站做翻译合法吗南宁网络推广有限公司
  • 济南做网站公司排名销售市场规划方案
  • 营销型网站定制珠海建站网站
  • 企业网站代码wordpress页面重定向循环