vuejs是如何编译checkbox数组的v-model的

随便用官方的例子编译了一下, 发现如下

      _c("input", {
        directives: [
          {
            name: "model",
            rawName: "v-model",
            value: _vm.checkedNames,
            expression: "checkedNames"
          }
        ],
        attrs: { type: "checkbox", id: "jack", value: "Jack" },
        domProps: {
          checked: Array.isArray(_vm.checkedNames)
            ? _vm._i(_vm.checkedNames, "Jack") > -1
            : _vm.checkedNames
        },
        on: {
          change: function($event) {
            var $$a = _vm.checkedNames,
              $$el = $event.target,
              $$c = $$el.checked ? true : false
            if (Array.isArray($$a)) {
              var $$v = "Jack",
                $$i = _vm._i($$a, $$v)
              if ($$el.checked) {
                $$i < 0 && (_vm.checkedNames = $$a.concat([$$v]))
              } else {
                $$i > -1 &&
                  (_vm.checkedNames = $$a
                    .slice(0, $$i)
                    .concat($$a.slice($$i + 1)))
              }
            } else {
              _vm.checkedNames = $$c
            }
          }
        }
      }),
posted @ 2019-05-26 22:41  LisPythoniC  阅读(283)  评论(0编辑  收藏  举报