当前位置: 网站首页>小程序开发>小程序制作

冷水江微信公众号开发【冷水江网络推广】冷水江建站、冷水江网站维护、冷水江网页制作、冷水江微信小程序代运营公司

发表日期: 2021-04-01 15:03:09 浏览次数:170

冷水江微信公众号开发【冷水江网络推广】冷水江建站、冷水江网站维护、冷水江网页制作、冷水江微信小程序代运营公司

冷水江市为湖南省下辖县级市,由娄底市代管。位于湖南省中部,资水中游,东接涟源市,西连新化县,南为新邵县,下辖1乡、5镇、4街道,总面积439平方千米。2016年,冷水江年末总人口37.24万。冷水江市地势南北高、中部低,呈不对称马鞍形,属亚热带季风气候,交通较为便利,湘黔铁路、娄怀高速公路从东至西横贯全境,资水可常年通航。风景名胜有波月洞、大乘山等。 [1] 

冷水江是一座典型的资源型工业城市,境内的锡矿山因富含锑矿,而有“世界锑都”之称。 [2]  冷水江是国家实施中部崛起战略比照西部大开发政策支持的城市之一,是国务院实施转型发展扶持政策的44个资源枯竭型城市之一。 [3] 

2016年,冷水江市实现国内生产总值288.8亿元。 [4]  2018年11月,入选中国县级市全面小康指数前100名。 [5]  2021年1月29日,入选湖南省人民政府公布的2020年度真抓实干成效明显的地区名单。

我们已经知道,Vue 里数据的变更检测是来自于 getter/setter,从而让data的属性能够响应数据变化。前面我们也讲到,Vue 将遍历 data 选项的 JavaScript 对象所有的属性,并使用Object.defineProperty把这些属性全部转为 getter/setter:

// 响应式的变更检测Object.defineProperty(obj, key, {
  enumerable: true,
  configurable: true,
  // getter
  get: function reactiveGetter() {
    const value = getter ? getter.call(obj) : val;
    if (Dep.target) {
      // 依赖检测
      dep.depend();
      if (childOb) {
        childOb.dep.depend();
        if (Array.isArray(value)) {
          dependArray(value);
        }
      }
    }
    return value;
  },
  // setter,最终更新后会通知噢
  set: function reactiveSetter(newVal) {
    const value = getter ? getter.call(obj) : val;
    if (newVal === value || (newVal !== newVal && value !== value)) {
      return;
    }
    if (process.env.NODE_ENV !== "production" && customSetter) {
      customSetter();
    }
    if (getter && !setter) return;
    if (setter) {
      setter.call(obj, newVal);
    } else {
      val = newVal;
    }
    childOb = !shallow && observe(newVal);
    // 会通知噢
    dep.notify();
  }});复制代码

由于 Vue 会在初始化实例时对属性执行 getter/setter 转化,所以属性必须在 data 对象上存在才能让 Vue 将它转换为响应式的。换句话说,只有当实例被创建时就已经存在于data中的属性才是响应式的(新增的属性等都不会触发视图的更新)。问题也是很显然,Vue 无法检测到对象属性的添加或删除,也无法检测一些特殊的数组变动:

// 只有这些操作会通知变更噢const methodsToPatch = [
  "push",
  "pop",
  "shift",
  "unshift",
  "splice",
  "sort",
  "reverse"];// 拦截上述这些操作方法,然后通知变更methodsToPatch.forEach(function(method) {
  // cache original method
  const original = arrayProto[method];
  def(arrayMethods, method, function mutator(...args) {
    const result = original.apply(this, args);
    const ob = this.__ob__;
    let inserted;
    switch (method) {
      case "push":
      case "unshift":
        inserted = args;
        break;
      case "splice":
        inserted = args.slice(2);
        break;
    }
    if (inserted) ob.observeArray(inserted);
    // notify change
    ob.dep.notify();
    return result;
  });});复制代码

所以在更新data中绑定的对象或者数组的时候需要注意,除了使用可触发变更检测的特殊方法之外,也可以使用vm.$set(Vue.set)实例方法。vm.$set(Vue.set)用于向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新:

// 更新数组vm.$set(vm.items, indexOfItem, newValue);// 更新对象vm.$set(vm.someObject, keyOfObject, newValue);复制代码

3.2.2 过滤器

Vue 中可以自定义过滤器,可被用于一些常见的文本格式化,支持全局定义和组件中定义。

// 全局定义// 千分位处理Vue.filter('thousandth', function (value) {
  if (!value) return '';
  return value && value.toString().replace(/^(-?\d+?)((?:\d{3})+)(?=\.\d+$|$)/, function (all, pre, groupOf3Digital) {
    return pre + groupOf3Digital.replace(/\d{3}/g, ',$&')
  });})// 局部定义// 乘以倍数filters: {
  multiply: function (value, times) {
    if (!value) return '';
    return value * ( parseInt(times) || 1);
  }}复制代码

过滤器可以用在两个地方:双花括号插值和v-bind表达式。

<!-- 在双花括号中 -->{{ number | thousandth }}<!-- 在 `v-bind` 中 --><div v-bind:text="number | thousandth"></div><!-- 支持串联,可接受传参 -->{{ number | multiply(1000) | thousandth }}复制代码

3.2.3 事件绑定

可以用v-on指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码,可用@缩写。

<template>
  <button v-on:click="addCounter">Add 1</button>
  <!-- 以下为缩写 -->
  <button @click="addCounter">Add 1</button>
  <p>The button above has been clicked {{ counter }} times.</p></template><script>
  export default {
    data() {
      return {
        counter: 0
      };
    },
    methods: {
      addCounter() {
        this.counter += 1;
      }
    }
  };</script>复制代码

事件修饰符

Vue 为v-on提供了事件修饰符:

表 3-4 v-on事件修饰符

修饰符

说明

.stop

event.stopPropagation(),阻止事件继续传播

.prevent

event.preventDefault(),阻止默认事件

.capture

添加事件监听器时使用事件捕获模式

.once

只绑定一次

.enter/.tab/.esc/.space/.ctrl/.[keyCode]

按键修饰符

使用方式很简单,在绑定事件后面加上修饰符就可以:

<!-- 阻止单击事件继续传播 --><a v-on:click.stop="doThis"></a><!-- 提交事件不再重载页面 --><form v-on:submit.prevent="onSubmit"></form><!-- Alt + C --><input @keyup.alt.67="clear" />

c51c866ffa1ab3457f2021e8bbdbcc1.jpg

冷水江微信公众号开发冷水江网络推广冷水江建站、冷水江网站维护、冷水江网页制作、冷水江微信小程序代运营公司

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: http://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878