text: (window.webpackJsonp=window.webpackJsonp||[]).push([[3],{241:function(t,s,a){t.exports=a.p+"assets/img/1.1cd9d205.jpg"},242:function(t,s,a){t.exports=a.p+"assets/img/lifecycle.6f2c97f0.png"},243:function(t,s){t.exports="data:image/png;base64,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"},244:function(t,s,a){t.exports=a.p+"assets/img/2.34f861fe.png"},245:function(t,s){t.exports="data:image/png;base64,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"},246:function(t,s,a){t.exports=a.p+"assets/img/4.ee1bc556.png"},247:function(t,s,a){t.exports=a.p+"assets/img/5.903632bc.png"},248:function(t,s,a){t.exports=a.p+"assets/img/6.d5da9110.png"},249:function(t,s,a){t.exports=a.p+"assets/img/7.99166c08.png"},250:function(t,s){t.exports="data:image/png;base64,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"},251:function(t,s,a){t.exports=a.p+"assets/img/9.e5cc3cd6.png"},252:function(t,s,a){t.exports=a.p+"assets/img/10.41e9c7c2.png"},253:function(t,s){t.exports="data:image/png;base64,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AAgAwRwAAAAIAMEcAAAACADBHAAAAAgAwRwAAAAIAMEcAAAACADBHAAAAAgAwRwAAAAIAMEcAAAACADBHAAAAAhA7VmzZpW6DAAAAEC1V2PTpk07S10IAAAAoLqjKwsAAAAQAII5AAAAEACCOQAAABAAgjkAAAAQgNqlLkAiDz30kC1btiyjaTt06GCXXHJJxvP+9NNP7bDDDsuxZAAAAEBhBBnMFcpHjx6d0bQjRowocGkAAACAwksbzCdNmmQff/yx/fDDDymnq1Onjp144onWr1+/vBUOAAAAqC7SBnOF8j//+c8ZzexPf/oTwRwAAADIQdrBn+layqN27NhRqcLsbebPn2+XXnpp7Hbvvffad999ZytXrrSHH37Y/V/djR071k499VR3GzVqlG3fvr1o771x40b3nvpbKqoDqhe+jrzxxhslK0upaD255ppr3HoRpWWh50qpVOtq/LZj/PjxlZqP3/ZgT8nqn+ixP/7xjwmfq+q0XG666SbbtGlTXuan9dlv31Sf87GtU9n+8pe/BP39lGIbr+Wh5ZKv7y6f8lGvClGX9ibB9DGPH/Dp+45nO7iz2E455RQbMmRIqYuxB60cOttRqrIpDF9//fV29tln25tvvukeW758ufuOq9Pg24kTJ9qRRx5pV1xxhbs/depUtyGvW7duiUtWXAcccIA9//zzbseVzWfXsnr88cetb9++1qZNmwKWsPii2w6/8+nTp0/Gr9eyUX268cYbq9yyyTfVv0WLFu2xnD744ANr0KBBiUpVWgsWLHDLY8aMGVnVu0xUZr+jdeGYY46xI444who3bmzXXXddHkuWf6XYxut788sltG1kvutVtC5F60ZVltfLJWY6YDORZFdhWbp0ac7zROm8++67LpT3798/9li7du2qVSiXLVu2WKdOnWL3e/bsWe1CubRt29aaNWtmixcvLnVRgqSdzdq1a0tdjCqrYcOGNm/evAqtePp/27Ztrm5WN/6zn3baafbZZ59xtqUS2MbvRr3Kj5xazB988EHbb7/97JBDDrGOHTva/vvvn5fCJAr2VeGqKzrKe+utt9z/559/vjuK1Kmo1157zVq2bGkvvPCCHXXUUXbBBRe4U2LaQUdb01S5tcznzp3r7l955ZXuiFEtbFoJlixZ4p7TPNQiqfBz9913u2k//PBDu+qqq1xr0dNPP+0eK0Yr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61KIZQIAAJmpdsEcAAAACFHSriwjRozIeaajR4/O+bVRy5Yts/fee8/93bx5szVs2NDat29vJ554orVr1y4v7wGUys6dO+2rr76yr7/+2t1v0qSJNWvWzGrUqFHikgEAgFJI2cc8GrAV1DMJ3JUJ9F5ZWZm9/PLLLpR7tWvXtk2bNtns2bPdTeH8zDPPtJo1afTH3kUHmW+99ZZ9/PHH7v8oHXx269bNTjnlFGvQoEGJSggAAEohyMGf0VDep08f69GjhwspGnTw0Ucf2RtvvGHTp093z5999tmlLCqQlQULFtjEiRNt69at7n7Tpk3t4IMPdv8vWbLENmzYYFOmTLEPP/zQBg0aZIcdxi+uAgD2HvPnz7e77767wmNXXnmlHXHEEWlf+91339mDDz5oc+fOzfg1UStXrrTXXnvNLrroIqtbt27S6dTQ+9hjj9nFF19sjRs3zuo9Uhk/frwdc8wxWZc7KqdgrlB8wgknFOSUu+++4unL0XuJrijRu3dv153lb3/7mytH165dC9atJR8LGOHSSrlw4cI9HlcY1kqdbzrT88wzz7guLKKzPv3797datWq5+99//7298sorrv4ruI8bN87OP/98O+qoo/JeFm/79u2unq9YsSL2mA4ItKF66aWX7MILL3QbsLffftvOO+8822effQpWFgBA1aCzvkOGDHH/ax9y5513usfU2JrK4sWLXZdOhfPKUsh//PHHrW/fvtamTZtKz68QEuWQnPqBaIc9duxYW7duXV4KFuVD+WmnnWYHHnigffHFF/bII49UuERP27ZtXSu6+JZzIFtnnXWW6yIVpZCssJxvX375pU2aNCkWylu2bOm6Yims33LLLe42Z84cVyY9J+rSpdZ19UMvJIXtYcOG2U033eRuOhBt3bq1XX755Xu0JPggv2rVqoKWCQBQNWg/cs0119i8efNcSMduiXJIzh201cL217/+1XUr+eGHHypdOE8t5tKzZ08XFpKFc7WUR6fPN4UP9QPW6Zh7773XHXnpFIkq16WXXupuOl0jqmiaZurUqbHntFwQNh2V+wM8r1evXta8efO8v9err75qO3bsiN0//PDDXZ167rnnXOu4bs8//7x7TGdpPL1GrwUAYG+lcK59rm/UUX7yeclnLN8FRtlLjURq0NJzfjrlMlEWe/jhh91rEt0X3yXmgw8+cA1f/rXJRPOd3lu5Tjku+rro+ySaPp5eH1/2eIlySKX6mCs0vP766+6qEgMGDKjMrGI0GE5HD37gm8K5QrkP57qvLi2NGjVyz2/ZsiUv7xvPn4LxXVn0JTz00EN21VVXuVMi+hLGjBnjyrHffvu5CqSDBFUE/1ynTp2CPX2CH+m0mgZhfvPNN65e6VRbIajveFS9evVc63P0oFZdWbTC16lTJ+Vri0EbT999xVN5n332WXdQvmjRItfFRs9rYzphwgQ3jc5mad3x0x5wwAGuO9rQoUNdKzwAoHrTPkP7Xd9dRQFWY6u0P1a/cj3nM9gVV1zh/vpuKcpimVD/cgXiTLqy+H7pt912m3udyqexjmrNVlcTZTodWGi/pzFhn3/+ecLpfZlFr9EZgjvuuCNtH/b4HFKpYK4AoT7f+QwzuiqFPpAKqNCrQiYK5+vXr49NXwwqz6mnnhr7crWgu3fv7r4o/VUrq77E+OcI5mHTSnXGGWe4ENmvXz8XmAvhZz/7mf3jH/+I3V+6dKk7K6QDP62QoquxqO5oEGiUyldICtFar0TdWhSiE9Fz2vBoWWm9V9DWBumTTz5xLQailg51L9Nn2bhxo9uIXX/99QUtPwAgfNq/KtcpG2lfoZuXLEfGDyTVftM3zOaL8p1a1nXz1PCk8vpW/o4dO9ratWtdztP9RNNHW+x9llCw1wFCqoGo8Tkk52CuljG1kqtFLJ80sFP9bmfOnOl2/pIonKuLi58eqAyFyNWrV1foQpJvnTt3doM9/ZgIhVltcAYOHOgeFx3EqXVZN08boUMPPbRg5RLfxzzaop1pH3KNM4kvsx+sqjNJWrYAgOpNrdIa2Hn66ae7+7qwQbqBoNpHqleGurMovKbrjlIZ0cGqUdHGM/Gt38mm91Retfbrc99www123HHHpZw+mkNy6mOuSxQOHz4876FcfEjRqY3olSJ8OPd9zhUEdFUYP32h6QjtzTffjJ1GUav+jBkzXHcVUVcWH2bin0PYVI9Upwv9wz460vb1VYNAtZF58cUXbdu2be6mPuZPPfVUbHr1OyvEQNR805kkP3BUt2j3FwBA9abcdNddd7l9oIJtixYtXGt5uoGgaqFWi7VCrqb99NNP3eNq9FGvCXUpEbXA+0sQ50L5TpcyTtRNRi3lojGEJ598ctrp46nBTftFXcQh1eeN5pCcWswLGYZ16UPfsqhLIiqcaKCnFoS+CB/MRZdRVMt9oejIRadQ1AKoUxGDBw92gwg89YXy/c3VlUVHdv6Ui38O8PyKpwO2yZMnu43K+++/725R2mjptNbecA1zHZzrs/huOAAARLuqqGHVj88TjdtTi/O1114bmz7RNcvVJViXWVT+0n7RX5jBdxf2eez444+3+vXr71EGBXp1p9R0qVq4Va74fOdb9DUPvbf6ix900EFpp/f8JSJ1cOE/X6b7yBrlL96Z6In4X/rM5pc/M5kuFV0m7p///GfKSyHm+sufOuLKd+Ap1IXqEbbK1iWdttKAYQ2eliZNmriuWa1atSpYmbSBjPKDNH2fcS86+FPdVaLXMdfGVmeP/OBPf9/TddA1L81Xz7NOAEDVEL06HgojZTDPVWWDubd8+XIXzvVXlUGhQsFFoTzXlnKCOfKlEHWpsrIN5gAAZIpgXnhJu7LkK1xXhrq1FOpXPQEAAICQJG0xB1D10GIOAMgVLeaFl/MvfwIAAADIn0r9wBCAvQutHQAAhIsWcwAAACAABHMAAAAgALWXLFlS6jIAAAAA1V6NsrIyrsoCAAAAlBhdWQAAAIAAEMwBAACAABDMAQAAgAAQzAEAAIAAEMwBAACAABDM91KfPzXeFv32N1a2dWupiwIAAIA8SBvMP/roI/vqq6+KUZZKmTBhgruV0o71623O2f1t47SpJXl/hfWprVq4W6Iy6DGVT+UEAABAWFIG823bttns2bNt0qRJ9p///KdYZUIGDho8xDrdd7/VrF+/wmM9V6+11v99RQlLBgAAgFykDOb16tWz8847zxo0aGAvvPCCLV++PKuZ33HHHXbIIYe4m+azYcMG97hatv/+979b79693XOazrv//vvdc/516VrBFy9e7OZz/fXXu5teo/t6XK+NzluPDRs2zJUjVRm2bt1qV199dawM7733Xkaft1Z5SG7YpavVbd68wuNbFy20D0/o7lqyfYu1buqKopue+88jD7nn1eotat32rd/RFnDfKq/Hsu3KonKpfLUiYR4AAABhSNuVpVGjRjZgwADbf//97ZVXXrFFixZlPPNrr73WlixZ4m7XXXedPfzww7HnXnrpJRf2586da2vWrImF382bN9usWbPc4zNmzLBXX33VBepkOnbsaG+//bbdfvvt7qb30n09fvrpp7t5+wOCmTNnWr9+/dxnSVWG++67zwYPHuzmpTKMHTvWlWHljMk29ow6FW5T7vnt7oVZHngPvvV2q9/p0NhjCtKr7r7Luv5rsmvNbvuHG23ZH2+0sm3bbNvyZdb4pJPsgHPOtW/Ly3b44+Ns+2dL3ev269HTTa/b8XPm2xdPjHPzqtO0qXV56RXr9ubbVqtx44y/C1G5VL6aBG8AC3kAAAZwSURBVHMAAIDg1C7kzNUqrVZs77LLLov9r+DrA3LPnj1txYoVdsIJJ8Seq18eHnXr3Lmz6+OuoJ0tzb9ly5a2cOFC69q1qy1btswuueSSlGU49NBDbfr06TZmzJjYdK1atXJ/23Q/w4ZP3pFVGbZ8usDWPTfJ3bwDzh3g/tZr196antHP/jPmATvwwqEVXqdW9vlDh9j2Vavc/UbHHpvV+wIAAGDvkjaYf/PNN/biiy+6v/3797d27dplNGO1MD/55JP22muvuVCt1mi1ZCeiwNy+ffs9HleXErVkV8a5555rkydPtmbNmtmRRx4ZC+KpytC2bVvXuh8/rVrM//WHMys8dsRZl9pJv7svZRnU57vtH0ZUeCzVAEx1T1Ere+urf+/6jWtatbIDAACg6ko7+PPZZ5+1LVu22DnnnJNxKPcUbBWIFbCfeuqphNOom8mCBQusW7duezy3evVq27Rpk2vF9tQXPNpfPUrhOp5au9U9ZsqUKRXmk6wMvpX93//+9x7T+Rbz6C1dKG9wWGfbvOAT1wKeLbWoy/rJr7puLwAAAKi60g7+VBcQ9TH/yU9+ktWM1Uqubijdu3e3vn372tFHH13heT9QU88PHz68QleVIUOGuOd+9atf2Q033JC0lTtK/cnVBSU6+FPUHUYt4eq37rukpCuDurvoQMIP/tRA0K05Xi9cfcJbXv4bm3lq79hATj/AMxn1AVfXlnkDB7jpd3yxLhbS/UBSzW/tY3+36R072IpbR7vn9FfTr/rrve61mi6XAwIAAAAUX42ysrKdxX5Tf6WVQYMG7fGcWsQVrH1/83xINM9UZQAAAACKrUr/8qe/XKNazPMZ9AEAAIB8K0mLOQAAAICKqnSLOQAAALC3IJgDAAAAASCYAwAAAAEgmAMAAAABIJgDAAAAASCYAwAAAAEgmAMAAAABqDLBvGzrVlt4xW/S/tw9AAAAEKKMgvm3335ry5Yty3rm+tn7q6++2ubMmWMDBgywxYsXZz2PyvBh/d3WLWz22f1tx/r1sec2bNhg5513nr333nvuF0J1AwAAAEolbTD/+uuvbcaMGbZy5UrbsWNH1m/QsmVLq1+/fk6Fy0bN8vc49N777aDBQ/Z47H/Nnm/12rff4zVNmjSxZs2aFbxsAAAAQDopg/n69ett5syZVrt2bevevbvVqVMnpzdR+G3Xrl2FELz8ttGuJVs33/1ky6KFroV7/kVDXQv3ynvuds9vnDa1Quu3bvpfj4mej59XNtqXh/b2CYI7AAAAUCw1ysrKdiZ6Yu3atTZv3jxr2LChHXvssVa3bl1bt26dzZ0717p06WLNmzfP+U19eFbrtsL14uuusYOGDLU65fOc/7+H2CG33m7rnptk+7RsZfU6dIhNm2weqR4TdWFZetON1uHmW6xO06Y5lxsAAAAolKwGf9aoUaPSb6ggvvHdKbb4//zetXBP69TBhXCvaZ/Tbd9jjrXajRrbAQMHVXhttJVdrwcAAACqitrJnmjRooVrJZ81a5a9//77dtxxx7lW8tNOO63yb1oeurv9v7etQadDKzyurizJqLvKxqnvuv7iavXm6isAAACoSlK2mDctD8DdunWz77//3g0AzWXw5x5vWL++Neza1dZNnJD1azWAs1b569U15fMnxlW6LAAAAEAo0nZl0ZVLNPCzTZs2OQ/+jHfAOefa9jWrY91S4i9lmEijY7q5v+r68snFQ23/n/WNPafWc9+9xXeRUQu75ql5v9/1CNddRn+jg0YBAACAUCQd/AkAAACgeKrML38CAAAAezOCOQAAABAAgjkAAAAQgNobN24sdRkAAACAao/BnwAAAEAA6MoCAAAABIBgDgAAAASAYA4AAAAEgGAOAAAABIBgDgAAAAQgbTAf9852W7z2h2KUBQAAAKi2UgbzTVt32rPvf2f//ehmm7OCcA4AAAAUSspg3rh+DXvgkobWtGENu/KxzTZt4Y5ilQsAAACoVjL6gaENm3fa7x/fbJ998YONHFDfTu9StxhlAwAAAKoNBn8CAAAAAaidboK1G8vs6sc22+cbd9rtFzSwHofWKUa5AAAAgGolZTDX4M/LH95sW77baXdf3NC6tK1VrHIBAAAA1UraPua6XOKJnWpbxxaEcgAAAKBQMhr8CQAAAKCwGPwJAAAABIBgDgAAAASAYA4AAAAEgGAOAAAABOD/A9NldMPAuiK5AAAAAElFTkSuQmCC"},254:function(t,s){t.exports="data:image/png;base64,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"},255:function(t,s){t.exports="data:image/png;base64,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"},256:function(t,s,a){t.exports=a.p+"assets/img/14.03b8bf60.png"},257:function(t,s,a){t.exports=a.p+"assets/img/15.c11fce3c.png"},258:function(t,s,a){t.exports=a.p+"assets/img/16.db56a96a.png"},259:function(t,s){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAuYAAABhCAYAAACas2QaAAAEnklEQVR4nO3dMWsbZxjA8ceiH8IEYzD0C2SzHbIYugdhE+JoCV67FI/GmCA8mn6C0EWWKQkin8BbrGxdOha8CKNPca4kJ8EhbnvSnchD7/eD48z5EM/453jvvZWiKG4DAAD4rlrfewAAAECYAwBACsIcAAASEOYAAJCAMAcAgASEOQAAJCDMAQAgAWEOAAAJCHMAAEhAmAMAQALCHAAAEhDmAACQgDAHAIAEFgrz8cVutFqtybEb/VHdIwEAQPP8UPrOUT921zsxWOIwAADQVAs9Me9e3URvr+5RAACgucqH+dp+vCuKKCbH0eYSJwIAgAby8icAACQgzAEAIAFhDgAACQhzAABIQJgDAEACwhwAABIQ5gAAkIAwBwCABIQ5AAAksFIUxW2pO0f92F3vxOBfbmmf38S7F6v1TAYAAA3iiTkAACRQ/ok5AACwNJ6YAwBAAsIcAAASEOYAAJCAMAcAgASEOQAAJCDMAQAgAWEOAAAJCHMAAEhAmAMAQALCHAAAEigZ5sM4bbWi9V/H836MlzsvAAD8L9X6xLz9bCdW6/xBAABoiJJhvhVHRRHFg8dN9Pam97Sj/VSWAwDAIqo/MR9dxuDt5Pz6MPbXqg8EAABNVDnMh791YjA5d3/aqmEcAABopophPozLk8lprxcHm7XMAwAAjVQpzMcXZ3EcXvoEAICqKoT5OC7fzxaxxOELWQ4AAFUsHuYf30Rn9tLnTlhdDgAA1SwY5uPo/zpbxBK9V7IcAACqWizMP2+RuNeOHVskAgBAZQuF+ZctEn/Z99InAADUYIEw/7RFYnRjxxaJAABQi7nD/MsWiecHXvoEAICazBnmw3jzcrqIpR3tpxaxAABAXVaKorj93kMAAEDTVfryJwAAUA9hDgAACQhzAABIQJgDAEACwhwAABIQ5gAAkIAwBwCABIQ5AAAkIMwBACABYQ4AAAnMH+YfT6PVan11nH5cwmQAANAgc4X5sDsJ8e3jb64fb0+ud4e1DQUAAE1TPsxH/Tg7ufuze1VEUXw6rrp3F0/Ooj9awoQAANAAc4T5dQym59cf4mjz3vXNo/jwuu6xAACgWWp4+XMc139Oz49jY636rwEAQBOVD/PNg+jtTc4nT7562XN88XN03ka0zw9iq/75AACgEVaKorgtf/s4+s8fzUL8vvb5Tbx7sVrvZAAA0CBzLmVZjZ1n7W+uPt4Q5QAAUMUcYT59Wt6KRy8HsxdA73ZluZktb5ltl/i8P7kDAABYROmlLOOL3VmUP7RsZbq/+ZMTS1oAAGBRJZ+Yj+Py/XSzxG4cPhDeW696MV3gMvjrutbhAACgKUqG+XVcz174/COuH/qI0Oc9zgEAgIWUDPOt2Jl9RGgQnfXTGN7/16gfu9vHsz/bP27UPB4AADRD+e0SpwG+3vnnJ+N7vbj5fT+sMAcAgPnVso9596qIo816BwMAgCaZM8wBAIBlmPMDQwAAwDIIcwAASECYAwBAAsIcAAASEOYAAJCAMAcAgASEOQAAJCDMAQAgAWEOAAAJCHMAAEhAmAMAQALCHAAAEhDmAACQgDAHAIAEhDkAACTwN6YQ7hCfi208AAAAAElFTkSuQmCC"},260:function(t,s){t.exports="data:image/png;base64,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"},261:function(t,s,a){t.exports=a.p+"assets/img/19.538788a8.png"},262:function(t,s){t.exports="data:image/png;base64,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"},263:function(t,s,a){t.exports=a.p+"assets/img/21.36f5ac53.png"},264:function(t,s,a){t.exports=a.p+"assets/img/22.478763d4.png"},265:function(t,s){t.exports="data:image/png;base64,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"},266:function(t,s){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAuYAAABmCAYAAACHtlSiAAALT0lEQVR4nO3d3W9c5Z0H8B/R/gGVSJAd4myt9GIXtUh2siIhVJUsVdokpgkWqCVk1d2iJbyEli4qbBNZEY3CBkoC2g0lXGx7w8tWCU5D3i6QfLEhBBJXURGoN0Gus8a1m//B3nPmzLunyYyZwYf485GOPHPOc5555lx9z+PfeeaW0ydPzwUAALCobpmdnRXMAQBgkS1b7AEAAACCOQAA5IJgDgAAOSCYAwBADgjmAACQA4I5AADkgGAOAAA5IJgDAEAOCOYAAJADgjkAAOSAYA4AADkgmAMAQA4I5gAAkAOCOQAA5EBngvmH+2PZsmWxbN+FJk+4EPvT9sv2R/UZ02/fX+jn/renm+xnOt76ftrP/fHWZItjBgCARWTGHAAAciAnwXxD7JmdjdnZPcmrxVKctf/+W9Hs/DwAALRLToJ5DkyOx+XFHgMAAEuWYA4AADmwwGBeelizsl3vAc0L+2rb7v/wr/VX+/DndZUeMC1vLZzb6LNX74iR9O3RHbGyapylsbcy5tJDq/POmXwr7q+7bkpnAABItR7MC4F4YwzX7R55aFfDlVDSYLtxb+2+4bu/2KopheB7d/0IhmPjsl1ZuG6jDd/dl/X+Xl38/nC0eA2GY7QugI9fSUcxFL2rKvsKAb8U/qsVbwTmB38AAJaS1oJ5OuNbCsTPnY/ZwgOb2Tb1Zt/89ns3xsZP3oipcrvzkcXckdjxm4XNb6c3BisfyuLtvg9mq8aQ9j0SI0db7bD44OnVN5IonXigMt4965P36weyMe8drZkZv/Bech0eGCqcc3m8es77QoymNyLJsYFiME9vJEo3J7Vjno3zz2X7h+9e6Iw/AAA3g5aC+YXfZDO+Q29Oxexw7fopXQ/uie2r6s/YF+d/uz26yu+TEPxBFs3jk/EFlXAUAnFxDIXgXN13Ofi304YYKITnyzFenuWfjvFPkj/ffDqeTo6N/G608l2KD5EObRsofu/pGP1d5UaidsxJ78NT8cYD6av5M+8AACwdLQTzYhhNou/TD3bdqHHmuYH5yx+u6s1mphfkRmPojd4H5u+tr3HPtubLaXq/kY54JEbOFeP35GhhZn7fdzdkx46OxGixr+lzSbvkGw59u6umbToT//D6Rr13xcC27IrUzrwDALCUtBDMx2O85TKRBpJg3qDopaNj2DBcWz6SbccazPA31vXtrGRl5Mp44X0WvvfFwPrSsVJoL82O99XUl9+w/96FXxEAAG4OlktsxqqBGEpn4gt15sXwXfpvQPFYFtqLNw6N/lNwHdPjVlAHAFjqWgjmpTKR4Th4naURO6syhob12KWykbYrlZukn5uF76Fv9JaP9X4zstBeXKklLXEpK4X6ozvivxvWkFdq0Pt6mywRAgDgptNCMO+K7T8trqny0Mp565ZPv73/Cy2B2OwYSvXYw3fXLTGYrhjTaDnCVh1NgnejTy6Ws1x++WASvqtqyKO0pOLlGH0vnfnOSlyaGnOk9e8rY8d1a9ABAFgKWitlWb+nvLxfGs6rH6Zc+dCXU47R9eDh4iomWdAtj6EQyoey2emFKNe+p+uhN/hRoeLxkaMjNUshlo6ldebDe9NjvdEbtboePFa1LGLtQ6jZMor1q9cAALDUtFxjXniQsrTmd5WhNw83/TDlF9MV239bWf+7rLCu+uEvsOLLhtjT4HtVHx8ofmZlKcSiUrlKo2Ols9Pr9kGDxRwL497TUk06AAA3n1tmZ2fnFnsQAACw1FmVBQAAckAwBwCAHBDMAQAgBwRzAADIAcEcAAByQDAHAIAc+JtmG3700Ufx2WefdXIsN4U1a9bEXXfdtdjDAADgK6bpYH7lypUYGlr4z/csFSMjI4I5AAAtazqYp+bm/BYRAAB0QtPBPA3lgvmNuUYAACyEYN5mrhEAAAuhlAUAAHLAjHmbuUYAACxE0+uYl4J5O7aZY/8UX/vaS3GxjX3maQMAgFYtSilL1k0xyLalRwAA+GpblFKWUj83YzA3Yw4AwEJ0rJTl4i9vjVtvLW4/OhYz1cezHmPu0sFKm2T74Tszdf1cjINVxwvbLy/OO56eV/N5tx6cXybz+bH4Yc1nXYxjP6rvbybbV9Xu4CWlLAAAdF7TwTzVdCh/aXlsOrA7zly7FteufRpH5nbGHS9VB+C0t+dj069Wx6eFNsl2dneceuSOOHSpEroPLd8UH7/+aXY83f5wJAYPbIp/rgrwqfS8c98ptrl2JnanfVffDFw6FMvv3BlR7uvTGDy1KXaeKHyrqs+7I3bOHakZ0/P/uLxqTEI5AACd0YEZ80tx7kDEliPbY13h/YoYeuznEQdejWOfVwfYLfHaL4ZiRem8tfdE0ir+MJGF7pl3Xk3i9c/j8ftWVPruHorHn02C+On/LYbuyGbfnz0TT60t9b0uth/ZEvHuREyUZsFfez7ie6/FgXJfyZh+8Voygih0UPm8+jE9FWeSz3t+06G4ZMYcAIAOan8wHzsX/5G0v3N1VaDufypmZn4dQ93VpSx3xuru+YH29PhE4fWK+36dnPNUrC2UobwT/3LbbXFbsm1+oXY8qS29PbVjqBnzRFx9N2mz+Z5K4C6E/NXJCAqtCuH93JnTSXgfjHvqxrT2O+ntwscx8XmT318wBwBgAdq/Kstc1YOdf6X5XMNVWYqvy+F2LF7pGowDpcPPnIrpf1sXY4e6YvCPpXPrz6nuPwnTU0mwjonk1fw2ET3Rc29lf+HQycfiW+8+1mDEW7LPkrkBAOiQ9q/KUpmuvk4wb7QqS/nEwv6xl9NQ/u9x8s8/iXXVY6hqU343L5hX7e/uiW8lrz+eN/6JuHoy+fP3VTcIz5yMP/90XTTWXDA3Yw4AwEK0v5Slf2M8m7T/+GrVCitTI/Fwd3e8MjZXE66j5txiNC/snomrf0xe39sTPTVtxuL9F6vHE7VBva6UJes/mxk/c/b92pVhpq4WZ9KjUHO+cdPmiBffj7G67zNz/OHo7n5l3n6lLAAAtFMHVmXpj40/S4Lw42+Xw+zY/zwRZwYPxw/6q8pGGvRX3FsIyj1/l7w8eTren6ocH3v53nghO7H2nHljqO5/RWx7JLlVOPlE7D5eulmYiZG9yZiSNpu/vqqwb8XWR5Mbihfi3kdGKgE+uaHY/fiZ2PzqD6JfKAcAoIM68gND/T+ZjBNzq+J7txef1Ixn4sTktuzhy6yzuFGNeamPretuj13FFpsOX47Lh3dH367TcX5qW2zrzs6Zm6srIakJ7Mnfvidj8lJP/Os/9MXtT5T6OhGHY2ucLp/bH09OXo6eR/ui7/Zd5a6eeXcyftzffImKcA4AwELcMjs721SSfP3112NwcLDT4/kS/T7+q2dbxIn/iyf729frqVOnYufOne3rEACAJaEjPzCUr+0vcfzRnuh59Hj8pWr/2Cvb4sX4WWzoa+/nAQDAQnSklCVflsfWXx2Pq397X6xd/ePK7i3/GWMTWyvlNW3y1bxGAAAstiUQzFN9setPf4pd9bvbHMqzLr+q1wgAgMXU/h8YAgAAWrZEZsy/PK4RAAALIZi3mWsEAMBCKGUBAIAcaDqYr1mzJs6ePdvJsdwU0usEAACtavoHhgAAgM5p6QeGAACAzhDMAQAgBwRzAADIAcEcAAByQDAHAIAcEMwBACAHBHMAAMgBwRwAAHJAMAcAgBwQzAEAIAcEcwAAyAHBHAAAckAwBwCAHBDMAQAgBwRzAADIAcEcAAByQDAHAIAcEMwBACAHBHMAAMgBwRwAAHJAMAcAgBwQzAEAIAcEcwAAyAHBHAAAckAwBwCAHBDMAQAgBwRzAADIAcEcAAByQDAHAIAcEMwBACAHBHMAAMgBwRwAAHJAMAcAgBwQzAEAIAf+H6gDmD/ndMgUAAAAAElFTkSuQmCC"},267:function(t,s,a){t.exports=a.p+"assets/img/transition.5990c1df.png"},268:function(t,s){t.exports="data:image/png;base64,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"},269:function(t,s){t.exports="data:image/png;base64,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"},270:function(t,s){t.exports="data:image/png;base64,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"},271:function(t,s){t.exports="data:image/png;base64,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"},272:function(t,s){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAuYAAAC0CAYAAADYQOmGAAAb70lEQVR4nO3dDW9c133n8Z+LfQHZgBT9IFkBFYDZbmaJSG4IQ6VYAvImI9VRSalAWEmh3DQUIzMPqmmF62LFim0SVlaq7lYrUUw2NmsZXCCSaFVxpq0McEeMoeWaVcBMH0AgmoYWpZgP6PYViHvOvXdm7jxyhg/SIfX9BBMN79x77rnDBPjdw/8594lFQwAAAAAeqV971B0AAAAAQDAHAAAAnEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwCnzOrqiRZFmlKvQU2uxWkSg4qciGlhqfMX3AcAsBYI5gDgDBuKO9WrDo3GR5Qwr0ttMR1a7XA+H9Oxrljx89f2eedOxAd0SoNqHkis5tkBAEUQzAHAFYlr6h2P6tLpqKqCTfWdfWpXTDdWKRsvxHoUOTCosaLnr9Op/ZFgQ41aX+1Q4/Dbujq/OucHABRHMAcAR0y+H5Panld91taIuuMj6o4UOagCNpQ390+p/ZwdiS/w+UxSamjSrurQxurt2t0wpfcmZlfeAQBASf/uUXcAAGDN6o7JxY3Nm9IB2hfVpXhHTlhfnqpovxJR//3k+/mf35s256w9mB6tDxubnpMdQQcArB2COQA4YU7JcROAxzt1smdAibgfgicHWnSoSasWzgEA7qKUBQBc0tan89HMyHSqxvxijFISANjoCOYA4JDGrZtytmxSbUOqlAQAsJFRygIATvADeLLCo7Lr0Y2GDo2GVnWpxDNb66TRGS0oknd8/g0DAGC1EcwBwAk12tVcp97R21qIhoO1X3tuJ4UWEp7QuVJVm2ul8bhuzkfVmlqZZf623huv0+5XmfgJAGuNUhYAcERV9KDaxwd1Ml1Pbh/4c1JDiupo9CEE48g+nWqYUu/rqad9mvO/PqixtoOZoA4AWDOMmAOAM+ya5QPe0zcj/cEmW5oSX15pSuVq1Hp6QDLnb24azJy/cxUWUQcALOmJReNRdwIAAAB43FHKAgAAADiAYA4AAAA4gGAOAAAAOIDJnwCAFRsfH9edO3cedTeWtG3bNjU0NGRtW899B7CxEMwBACv2i1/8Qq2trY+6G0u6evVqXrhdz30HsLEQzAEAK2YX+FoPi3wV6uN67juAjYVgDgBYFes5OK7nvgPYOJj8CWDtzcd0rGlQky60mzomMajIidQTLnM/79HV+UIHJ3Sm6GePtwcPHqyb10bqO4CNhRFzACE2eNpHwJen/dyIuvMeCjnrPbkyebjQZ6UtxHrU3D8V/BTVpXiHNNCiQ8PK2lZf6GAbqA/c1dFin+eKdChx2A/no6czT9acvGIfQd+n88t6BH1l31/J61kWc/4TMzpy+mE9KTTbeh51Xs99B7BxEMwB5CkcuMOC8F1RqzEdaootea7GngGdj86ZgHsrZ59EepsX4KcPKrE/1FB1VH09Pd6j5G3YfSYr5OcbC/Wl+YT8cJ4YNDcBNixHMucp1MaBFvWGfzZBPhF6bH3uNaX7G360vR2x7yravWWZHLA3BR06srrNlqWsOu37P9Lh16Qzb/6uauzPH5zRx16Q/u7fuvXZ9M+T+v4/vaXffTp0nN0+ukv/duKzq9LPZfW9pFn96Ei39Nv1+msd1lsHaorvefmwunWm5D7FcPMAbHwEcwAPyWqPDuerivbr0nSLLsb2qc9uaOjIGg33FB1ZNzcbb8W8G4P6UHuJaHgfe3Pwtmov96u1xIj6UFdLgVHzk4oM526L5u21XpUVblMfm/1mr3xJdX9w3fvxP3/sT7N2+8qvf0zTN/6fXnku/xyr0c9C20q2ff+yvvRH5obijQPaVKrx51/RmVtf0pkP/iqv7/nnnNXll0yY//Zf6cDTpfcN9xPAxkYwB5CncLDM1354zbtSsfrOEZ2XHaX2f7450KLeUCBu7+koeNxC7Kx6ZYJ81I5k+iUpSW/0vvKRzZWNmPt/jfD6UnZJSnDMuH0/qOamuE7Zm4ePzDne2qJTtYP+d+DdqGzWm+balNXH4Pja7JH/yawyojq/zRI3JKWC4wevf1yf+67//vo7v9Tg96U/+ru/1dbprTqwf1rfe2lah9/YpZtXprU1+Tnd9MJyumHvld3+B/rexz+nb4dP8l/+Vv/66m8s+W1V2nc9tV+v721X3elnTfvKP2/KO/8+ePMlPfsPQ+nAPXelXZ9Kdnl9809jr2WT9v/pi2r/j2f07L++ouX1GsBGQzAHkKeSUhYvvKlPo1vfzi77GM8P92MFSlmsxmUG4HLsMkE90RneYkJ3/93Mey+kDqh21PR9fMorhfHY8pSozHW2BIE3JKuUZe3/ErC0GrWeHtE2+7tIhgL9R+Y1PugH7njqF5ooq0U/lIeuzd5ImOtOFvnfxlKTE3e8sqCFtis68l+l0/9zv/lij+iXD3boNxeP6Mz/fVk2rMZPd0u/dVq/vGN+8tr7QH9eFdV3vBa+rY8HwV49MS2YXRf3XdQ/mba8UeyJP1fV/156gmSpyZ+lVLW8odiZI/rRzMump68ptvCHoTA9pytfPiH9yZvanx79tm36n8V/vKiLf7LDP4+9wVBwvidb9cbfmH6/9KPMdVTYdwAbC8EcQMgm1TaojNpxPwh6wbbLBvmIqiK5ZR+VmA0F4E6ZpjxDqSA/nAn5Q01JtbcVaycVtEeWqLNO6s68VP/RLdOuCZ+RGtWb67GPmEndaKRGjluD7ZVYWSlLzbLOWVydTu2vcBbufEwXh+3vNXTDEenQpbaYDr0VKzq5dOlSlkWvnGUx+Pc7n68KQveP/c+vmVe///61Jjuq/JyOz8/r+MRZVcd/U/OvmChs3r/04bPms+n0KHowCC1/JHp55R7lHPfcK2/oOX2gs+b99JUjih4N+v2F10xUl561ffnA9PXCs/rH9A3DJR39D8c0/9RiauA/u587jusf97ykXz+zxb8+AI81gjmAkBrtaq5Tb5mlLB47srxU7kv4JRXFSzP8MLor1mPi6/H05M8XglVZbuzMTP58IZjYOTRdoJn5GRO567T7SfN+xrxqN3sTOiNdmZH69nN96feT78e8/qfDp9n34tYBc4OxstH7RzX5s7BabatwhZmFibjGzE3D0Zzfa/1OcyMxfFf3zPvc32N5NeZ+iLb7bWr5oeZaSu6cKWVRKNAHodbP9qFgnrVPqS4sd/LnhM5uGlPjXKN33mdz+j/xvZc0bWvnpye1d8/vqdrr15yuXJjUhb5vptv3+5t9vmrT1k/M8ZfvvREacS+v7wA2FoI5gCz5Ex6Xw46An5VeLV2TPJkO3Ss9n88LlA1N6ss9p1dbvV03vfIb+1eBKSU/Sig5bOumg5PbSaEmwI8plh6xtyU2fTpbcnWX7AmmEXXHR8rrrF2uMV7Z9T1chVfRKTZhtZLJn344ndBf1OzVdwvt94ULSny/NVPaER5lzhlxrnTEfNnB/P60fv6FZ/V7qfNOnNWmPUHvv/Wu7H8+vP+B3u78Tzo2W+21NzfyLf14T79++FTmJiN1E5E639zI76tHZp8//KF2ZN2MlNd3ABsLwRxAQTY029HjvNrvJUe/UxMJTWAt2npogmOo/vve9JRqd9rzzS2rz/b4xubjXr8m7futhap2a7StVurtOumP9gch3h8lzq939yaR5iyHmPmsR82jofelAnzBUhbfWtbYL19ltfM2NC5ZA734wAueXq21+c/ii/9Dk4Ot2bXVv7qqL/cGD9QJNs39clJ7tn7Rb//BYlB/btsK7fdg0Wt/qT4UC+ZLHTd367oWP/9dVT340Bvx9nY/cV2/+uKH+vL/eqDNn9ij7+7Zqz3nJ/V1r08TJqRH1Pmrqqy2q/b9QD+Q/x1MnH1KL8q0cbyqrPpxgjmw8RHMAXiyV+BIydR750pPkrRSwdVbitBs7ylVDhI8hKdI2M02qzvJOtXuX2K3oN0bw3XafbkmOE5ByM/3zNY6799w7fVK/1JQ8Hjv+4irtk0aUq3azff7wiOfKOpLzsxKkdT3M6ekre+v9X+q2mzfBHX4ob8++DciTQVvysoeMb/+suqfelnfun49/T6PCezfSZeozOmnsZ8o0vEDfxT6w5+bbV9MlauHRszXspTF9kHa+8fVWrz/U/381Z36+uJPg/P511XdYEK5Ivrq71QHbe3Q1+/vSJfvZPt7/benX9SfvXpd94/vKDtwE8yBje/XHnUHALjBLjOYiKdefWr3lscLbwte56J++UZ4mxewTeA2obz23Ej+6K8t2/BKSVoUCSZn5odyP1jXPhneZgNjfo20F4Jzj0/c8sKvt+/8bb03Hmpr3C4hmFpOcFY37QosqX0T/tM/F4JdbfiMNLX4r4HyVjApxN7oRF6X+uL9OrLVbnle3fHndcO0e6Zks/5E2HCfVpc/wXds9Ha6ff/BRCHeRM8p9Zrf52Rqm7nJONk/pfbDxZdwTAXcQq+Js0/r6R0vK3L9nu7du6evbzch87fP6Wf3/J/Tr4lz2hM+1gThd69/Szu3Z2rL00snhvfze1CyD6WCbenjPtSH1yPa8uSiZv/Pu9InNvvne/1F75p+omld7bX/KrjWP9DV+yW+h6cvaMuEudZvbl+yv+X0HcDGwYg5gDwLsbc11NCk0YomDRarrw49pt6Okp8uMkpug3XOOe/YfrQdVHcZZw9P5PTKUsxx521bdsnAUB24v+pKVO0NMd1IdOiZGTu0/invpsEGd1tWkojnlLIMFy9DkelzRmY98fZzmWUaMwHb/4680N5VzrKUlanf36HGA4PeXzO8tgvuZSfa9ilpfiepv3rYa77U1mm+l1Bb5kbtklqy6sxL9Xep8Lj9GzOa+Ya3Z2Zlkh936TPPFJgBawL7t72wPa93/rhLi+d+pu1B+P7wX36iT+8a9MJy3vHd19ZmxPz2T/Vn3Ts1szih//7yp3V0plqLtxe98818c4f+/i82a9+nrulnnx/QayMT2vvPn/ZCfLrJX72jr/xGl+w3eeKvc7+H8hHOgY2PYA4gi1/SYkfLy324Tb7cemsvpC4RQG2wbj9sgr0dsbbHmjB9ajrplZuky2xM8O5WTtmN2WYfKCQ74u9tSOjNfmUmdXqj9eFrC2qnzc6Rt2KqrbW16MfV2lliicIyasxTffKu9XTpa60P1lZPBfTs9lewXGJ1VOfj4XqaYhNM/RuE7OA+krfCeX3eGvDFVT6qa0fM/1K3L/yOsu7/TIjt6AtGiW8Pq0tmn32LGuncrK95qxOe0DvfCM4VPv72X2rL2BpN/vzM13T3M9LcOx3StUH/JiHYNmFC+cVP3NbdfbYXRxXZsk9d3e/o7v0RfeWzX/PCuNfPu3c1GFz3cvM1wRzY+J5Y5P/pADzByHahx9hn7VZk8md4WcKl2lhLph/HZvaVNWk1cxNSevWYlSq4XOIGc+HCBe3du/dRd2NJ7777rr761a9mbVvPfQewsRDMAQArdv78+XUTbo8dO5a1bT33HcDGQikLAGBVrOdxnvXcdwAbB8EcALBi62XlkOU/+fPRWw99BLAyBHMAwIpt27bNK7Vw3Sc/+cm8beu57wA2FmrMAQAAAAfwgCEAAADAAQRzAAAAwAEEcwAAAMABBHMASJvV1RM9ujqf2WIfQnQm95GYJbYDALBcTP4EgDDvCabSpXiH6v0N3hNRdW5E3cGDO/0nhkZ16vI+tVannjAaPDm1opNFQ+fJ64jXXrJnIP8ppg+Bf43Z29pD38Gy5X2/ZR2kMydmdORRPU0WAB4SlksEgLBIhy61tehibF8QiCPqPhdV5K2YHwznY7qY7NBoPDckmv3iJriWe54goLrH/tWgU73KuUZz3ccOtOjYSm8UzPebiFd2yOSAveHp0JHlnxUA1gWCOQBYXlCOhTZ0KtKfvUtz02CB96VGvdeh+dt6b7xOpy7n3HhUR9XXE1dz/zVNRjfQ9QKAQwjmAJDS0KHRSsolvFHkuwW2mdC+JiUowWj2eGhTW58SnZH0eWtzy0287XHtvtyv1upM/8ZCu2SVqHx01/tsd4GzV0X7lYjmbMxtL/QdLsR61DzdpFPJQb/Ptq87b4VKWVJlQn1SV6YMqDH93YWvd9DcDMXNDUNwHQCwATH5EwBWU3VU5+Mj6tNZRZpazGtQk6vScBBSa024Ne17r8sdahw+qWOxWXPe7drdIA29nz0jdWEirrGGJu0KhXIb3lNtjPbUaagrNOE18rzaNaVeW7Zi2y3F/pUhp71LtSZAn4hpIbXP8KDeax7wP+8sXKA+1OXX8KeuSf2dwblr1HratNkmP/DHCeUANjZGzAHAsrXPp+2b8iZx+qPMNoQX/jw9umzDsAnoKx5BT5WYvBoKt0EY752esxegXc11JtTe0qQJwH6pyaxujk6psfm4P4LthfQO9YWaqHquSY0aVPIj257k18r3SfY76A+X8+SX7Ey+H/NGwcMj9PWdJlwH7xeC444udd3hNiiZAfAYI5gDQJZikzgzgd2WWpS9Ook3gp6p/7CrnVzcakL6ZvNDwxY9U263wu3klo/U+v+kQvaNhAm0tn+Ja+r1wrwfjMOlKF6ZSf+UcpoIhL6DdO19TIeaYpnSGfN93Bi238Wm0v0u4xrbd2Z/mf51xHVn3gR9RsgBPEYoZQGAJdgQG2m6pReCco2KR75tuPXKWlp0Y+cyjvfYUha/DVs+MmYDcnxApxpCu+SUs3gj2qkyFisYvbdt2FBuR/29cphSp/VWUQnKVGxJyfDbWeu8125++Es5AsBGxYg5ABSaVJlnyh8xLqCxYJlKqCTGC9EdWZ8uzCTNf29J/+ytG54sMfk0NfqdNfkxtwa8JlTOomBEe3u6vckrg14pS9Y55lW2+v22pj1c9iIlZ0wfIqsczktMQAWAjYxgDgDBJMPWIp/6q4scLDp5MSMc8G1Ndvnrmj+z1QTq4bu6Z96Hg3lqRNoL8uHRb8urO1dWHUq6nGVA5qbABPnnUqF5VndME43N27Pa9+rOQ00seYNg2qx90v67SbV2dN6rb19ZMLcj/N2RzHdb8FoB4DFAKQsArAavTKQzswLJEmub35uesqk7HX6rNttoHNON1MzJxC0vWPshOPh8fFBvphddMTcBrwd15smZzCooqXKW4ZwyFhOet5kmxuykylCfTwZ15t7It4JRcXOe5oHs1V0sb8S97WAwYm9uZg5Hzc3ESZ0J7eqX/VS4Ek24jaBP7Yd5yieAxw8j5gCwGnImeZZknx46bFd2CY3ARzo02pNUc1dLsCJMTtlK3ud+Cc2l2k4dyhppD8pZxqfyRsfrOwd0KtkZKsmx5+hT7YGTmZFv7zq2eyP/kabsbns16eE/Gtj688tbvCeCZjZnVm9ZUHkaezqkrkwb7TlrsXs3CwcGvYc65X4GABvJE4vGo+4EALgmd9WS5QfCwvXrhevSHzd+HX6S7wIAPIyYA0ABBZ9yuSyl69cBAEihxhwAAABwAKUsAAAAgAMYMQcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHgIfEPu4+9ymZx2KzefsV2w4A2NhYlQUAHpb5mI4diGt3+ome/sOH3mvOPGDHf7CRfaDRcXVHUg/dKfyQotKCJ4fKnnNQY219SnQWe0KS/6CfoZL7AADWGsEcAB4iL3hPH8wEYC+s39VR7zH2NiDf0gvBI+2XLecGwI7UHxoOgnp1kT71T/G4ewB4xHjyJwCstflg1Dq94aQiw9m7jDXF0u+H0u+Lh+lK1O+MSsMxvTcxq9ZoTc6ns7o5OiU1dOgIoRwAHimCOQA8FFFdqmgk3I6ev11g2zJKTiL7dKohpt7R21qIRlUV/mz+tt4blxp7tnvbvdHz0SaNng7tlxhUpCuZdZOQGmVPYbQdAFaOyZ8AsG5E1B0fUWLnLUWaWsyrR1fnyzmuRrua66TxuG7m7L8wEdeYuWk4mjeSXlyqDv7UZdMX25/LHUp2tTBhFQBWiBFzAFhr1VGdj9s35U3ibOyxk0FtCO8vvEOkwwTiDvkj6CaglzGCXhU9qPb+kznlLEEZS9vBikby3+yf8vqYLrEx19fXEzdh/ZomoyusjweAxxjBHAAemhq1nh5Ra972UGA3Ift82aPX/gh6d/BTemLpfvtTrbZVZ+/7Qpt0KByeE9e8c7YfrqAGJXFLQ7b2/bnsPlY916RGxXVnXqpfYU08ADyuCOYA8Cil67dHlFhOoA1NLLWj2IlOE5jnZwruWr+/Q43Dg7qRMMHcZPHJ92PLnPQ5pd4DLerN216n3RVfAAAghWAOAGvMX66w9D6Fg668EfT8MpXQCLsJ1qPxkewJnR/d9YL60dy2qrdrd4M51/sJb6LmjeHMpM/KrM5qMQCAbARzAFhj9Z0jJlwX+dCOmL+1JXsVlCIyAb9umSPsNWo9HFVv1y1N7pSG7Eoxhcpmxu/qnvkn1Z+FmWTmsye3qFExJT8y78Pn90b+VeHKMwCAMFZlAQDn+ZM8D6nPXwUlXnq02gvSDVv0TKEPI8+r3QTrQ10xqe35vBBdtbnW/HdMNxLBhvmYToaWRfQnetZpqCu8Iozpn2mvsWcfoRwAVoARcwBwXvYkz9JSq6YcLzICH9ERG6ztcof7CxSXRzo02pNUc1eLhrwNUV263CEdiKd3qYr2a1Q9ag6V3/gryZS/5CIAIN8Ti8aj7gQAPFa8so/Mkz5XEmoL1q9X+gAiAIATCOYAAACAA6gxBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAcQDAHAAAAHEAwBwAAABxAMAcAAAAc8P8BBcCakLdc/cMAAAAASUVORK5CYII="},273:function(t,s,a){t.exports=a.p+"assets/img/32.caf8a1cb.png"},379:function(t,s,a){"use strict";a.r(s);var n=a(2),e=Object(n.a)({},(function(){var t=this,s=t.$createElement,n=t._self._c||s;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"vue"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vue"}},[t._v("#")]),t._v(" Vue")]),t._v(" "),n("h2",{attrs:{id:"vue基础知识"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vue基础知识"}},[t._v("#")]),t._v(" Vue基础知识")]),t._v(" "),n("h3",{attrs:{id:"mvvm模式"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#mvvm模式"}},[t._v("#")]),t._v(" MVVM模式")]),t._v(" "),n("p",[n("code",[t._v("MVVM")]),t._v("是"),n("code",[t._v("Model-View-ViewModel")]),t._v("的缩写，其核心是提供对"),n("code",[t._v("View")]),t._v("和"),n("code",[t._v("ViewModel")]),t._v("的双向数据绑定。既"),n("code",[t._v("ViewModel")]),t._v("的状态改变可以自动传递给"),n("code",[t._v("View")]),t._v("，也就是所谓的数据双向绑定。")]),t._v(" "),n("p",[n("img",{attrs:{src:a(241),alt:"MVVM"}})]),t._v(" "),n("p",[n("strong",[t._v("View层：")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("app"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-model")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("inputValue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleSubmitClick"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("提交"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("ul")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("li")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-for")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("(item,index) of list"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":key")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("index"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("{{item}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("li")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("ul")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br")])]),n("p",[n("strong",[t._v("Model层：")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("script src"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"./vue.js"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("script"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("script"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Model(数据)  View(页面)  VM(vue.js)")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" app "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        list"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        inputValue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("''")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    methods"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleSubmitClick")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("list"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("inputValue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("inputValue "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("''")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("script"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br")])]),n("h3",{attrs:{id:"安装"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#安装"}},[t._v("#")]),t._v(" 安装")]),t._v(" "),n("p",[n("code",[t._v("Vue.js")]),t._v("安装方式有很多种，它也有很多的版本，例如：")]),t._v(" "),n("ul",[n("li",[t._v("可以通过"),n("code",[t._v("script")]),t._v("标签引入")]),t._v(" "),n("li",[t._v("可以通过"),n("code",[t._v("npm")]),t._v("引入")]),t._v(" "),n("li",[t._v("可以通过其他方式引入\n为了学习的方便，我们通常使用"),n("code",[t._v("script")]),t._v("标签来引入"),n("code",[t._v("vue.js")]),t._v("开发版本。")])]),t._v(" "),n("h3",{attrs:{id:"vue实例"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vue实例"}},[t._v("#")]),t._v(" Vue实例")]),t._v(" "),n("p",[t._v("每一个"),n("code",[t._v("Vue")]),t._v("应用都会通过"),n("code",[t._v("new Vue()")]),t._v("的方式构造一个"),n("code",[t._v("Vue")]),t._v("实例，一个大型的"),n("code",[t._v("Vue")]),t._v("项目，往往由一个"),n("code",[t._v("Vue")]),t._v("根实例和一些可选组件实例所构成。")]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[t._v("根实例\n└─ TodoList\n   ├─ TodoItem\n   │  ├─ DeleteTodoButton\n   │  └─ EditTodoButton\n   └─ TodoListFooter\n      ├─ ClearTodosButton\n      └─ TodoListStatistics\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br")])]),n("p",[n("strong",[t._v("实例属性和方法：")]),t._v(" "),n("code",[t._v("Vue")]),t._v("实例在被创建的时候，只有在"),n("code",[t._v("data")]),t._v("中声明的变量才会是响应式的，实例在被创建之后，实例上会有一些实例属性和方法，当然用户在"),n("code",[t._v("data")]),t._v("中定义的变量也被挂载到了"),n("code",[t._v("Vue")]),t._v("实例上。")]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// vue实例")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" app "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      message"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'hello,world'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      age"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("23")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'AAA'")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 实例属性和方法")]),t._v("\nconsole"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("app"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("$data"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nconsole"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("app"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("$data"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("age"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nconsole"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("app"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("$el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 只有在data中声明的属性才是响应式的")]),t._v("\napp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("address "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'广州'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 这个属性不是响应式的")]),t._v("\napp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("age "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("32")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 这个属性是响应式的")]),t._v("\n\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br")])]),n("h3",{attrs:{id:"vue生命周期"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vue生命周期"}},[t._v("#")]),t._v(" Vue生命周期")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("理解")]),t._v(" "),n("p",[n("code",[t._v("Vue")]),t._v("实例的生命周期就是："),n("code",[t._v("Vue")]),t._v("实例在某一个时间点会自动执行的函数。Vue生命周期有11种之多，它分为不同的组。")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("beforeCreate")]),t._v("和"),n("code",[t._v("created")]),t._v("这两个钩子函数，会在"),n("code",[t._v("Vue")]),t._v("实例被创建之前和创建后分别调用")]),t._v(" "),n("li",[n("code",[t._v("beforeMount")]),t._v("和"),n("code",[t._v("mounted")]),t._v("这两个钩子函数，会在模板和数据相结合被挂载到页面之前和之后分别调用")]),t._v(" "),n("li",[n("code",[t._v("beforeUpdate")]),t._v("和"),n("code",[t._v("updated")]),t._v("这两个钩子函数，会在数据发生变化之前和之后分别调用")]),t._v(" "),n("li",[n("code",[t._v("beforeDestory")]),t._v("和"),n("code",[t._v("destory")]),t._v("这两个钩子函数，会在"),n("code",[t._v("Vue")]),t._v("实例被销毁之前和销毁之后分别调用")]),t._v(" "),n("li",[n("code",[t._v("activated")]),t._v("和"),n("code",[t._v("deactivated")]),t._v("这两个钩子函数，会在"),n("code",[t._v("keep-alive")]),t._v("组件激活和停用时分别调用")]),t._v(" "),n("li",[n("code",[t._v("errorCaptured")]),t._v("会在捕获子组件、孙组件发生错误时触发(2.5.0+版本新增)")])])]),t._v(" "),n("p",[n("img",{attrs:{src:a(242),alt:"生命周期"}})]),t._v(" "),n("p",[n("strong",[t._v("生命周期的使用：")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" app "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      message"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'hello,world'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("beforeCreate")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    console"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'beforeCreate'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("created")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    console"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'created'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("beforeMount")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    console"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'beforeMount'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("mounted")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    console"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'mounted'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("beforeUpdate")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    console"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'beforeUpdate'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("updated")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    console"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'updated'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("beforeDestory")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    console"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'beforeDestory'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("destoryed")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    console"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'destoryed'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br"),n("span",{staticClass:"line-number"},[t._v("25")]),n("br"),n("span",{staticClass:"line-number"},[t._v("26")]),n("br"),n("span",{staticClass:"line-number"},[t._v("27")]),n("br"),n("span",{staticClass:"line-number"},[t._v("28")]),n("br"),n("span",{staticClass:"line-number"},[t._v("29")]),n("br"),n("span",{staticClass:"line-number"},[t._v("30")]),n("br"),n("span",{staticClass:"line-number"},[t._v("31")]),n("br"),n("span",{staticClass:"line-number"},[t._v("32")]),n("br")])]),n("h3",{attrs:{id:"vue模板语法"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vue模板语法"}},[t._v("#")]),t._v(" Vue模板语法")]),t._v(" "),n("h4",{attrs:{id:"差值"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#差值"}},[t._v("#")]),t._v(" 差值")]),t._v(" "),n("p",[n("code",[t._v("Vue")]),t._v("的模板语法常见绑定值的方式有很多种，常见的三种它们各自的特点如下：")]),t._v(" "),n("ul",[n("li",[t._v("使用"),n("code",[t._v("Mustache")]),t._v("来实现差值，即可以只是一个变量，也可以是一个"),n("code",[t._v("js")]),t._v("表达式")]),t._v(" "),n("li",[t._v("使用"),n("code",[t._v("v-text")]),t._v("指令来实现差值，它的作用同"),n("code",[t._v("Mustache")]),t._v("类似，同样也可以是一个"),n("code",[t._v("js")]),t._v("表达式")]),t._v(" "),n("li",[t._v("使用"),n("code",[t._v("v-html")]),t._v("指令也能实现差值，它的作用是将原始的差值进行原始"),n("code",[t._v("html")]),t._v("解析")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("{{message}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-text")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("message"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-html")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("message"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-text")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("rawHTML"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-html")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("rawHTML"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" app "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      message"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'hello,world'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      rawHTML"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<h1>hello,world</h1>'")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br")])]),n("p",[n("img",{attrs:{src:a(243),alt:"差值表达式"}})]),t._v(" "),n("h4",{attrs:{id:"指令"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#指令"}},[t._v("#")]),t._v(" 指令")]),t._v(" "),n("p",[n("code",[t._v("Mustache")]),t._v("语法不能作用于某些"),n("code",[t._v("html")]),t._v("特性上，这个时候，指令就派上了用处，常见的指令有:")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("v-bind")]),t._v("：它的作用是绑定一个"),n("code",[t._v("html")]),t._v("标签特性，例如："),n("code",[t._v("<button v-bind:id='btn'></button>")])]),t._v(" "),n("li",[n("code",[t._v("v-on")]),t._v(": 它的作用是绑定一个"),n("code",[t._v("html")]),t._v("标签的事件，例如："),n("code",[t._v("<button v-on:click='handleBtnClick'></button>")])]),t._v(" "),n("li",[n("code",[t._v("v-if")]),t._v("：它的作用是根据某个变量的"),n("code",[t._v("boolean")]),t._v("值，进行控制此元素是否在"),n("code",[t._v("html")]),t._v("文档上出现")]),t._v(" "),n("li",[n("code",[t._v("v-show")]),t._v("：它的作用同"),n("code",[t._v("v-if")]),t._v("类似，不过两者之间最本质的差别是，"),n("code",[t._v("v-show")]),t._v("是通过"),n("code",[t._v("css")]),t._v("属性"),n("code",[t._v("display:none")]),t._v("来控制元素是否显示。")]),t._v(" "),n("li",[t._v("其他自定义指令")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- v-bind --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[n("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("v-bind:")]),t._v("id")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("submitBtn"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("按钮"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- v-on --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-on")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleBtnClick"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("按钮"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- v-if --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-if")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("v-if元素标签"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" \n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- v-show --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-show")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("v-show元素标签"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" \n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" app "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  methods"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleBtnClick")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      console"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'v-on click'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br")])]),n("p",[n("strong",[t._v("运行结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(244),alt:"指令"}})]),t._v(" "),n("h4",{attrs:{id:"缩写"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#缩写"}},[t._v("#")]),t._v(" 缩写")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("v-bind")]),t._v("的缩写形式是"),n("code",[t._v(":bind")])]),t._v(" "),n("li",[n("code",[t._v("v-on")]),t._v("的缩写形式是"),n("code",[t._v("@on")])])])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- v-bind的缩写 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[n("span",{pre:!0,attrs:{class:"token namespace"}},[t._v("v-bind:")]),t._v("id")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("submitBtn"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":id")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("submitBtn"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- v-on的缩写 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-on")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleBtnClick"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleBtnClick"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br")])]),n("h3",{attrs:{id:"计算属性、方法和监听器"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#计算属性、方法和监听器"}},[t._v("#")]),t._v(" 计算属性、方法和监听器")]),t._v(" "),n("h4",{attrs:{id:"计算属性"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#计算属性"}},[t._v("#")]),t._v(" 计算属性")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("在"),n("code",[t._v("Mustache")]),t._v("语法中，它允许我们书写一些"),n("code",[t._v("js")]),t._v("逻辑在里面，对于一些简单的逻辑，书写在"),n("code",[t._v("Mustache")]),t._v("语法中是非常合适的，但对于复杂的逻辑，就十分不合适了，这个就是计算属性能帮到我们。"),n("strong",[t._v("计算属性是基于它的依赖进行缓存的")]),t._v("，意思是只要你依赖的变量的值不发生变化，计算属性永远只会计算这一次。")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("app"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- 输出：Hello，world --\x3e")]),t._v("\n  {{fullName}}\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("script src"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"./vue.js"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("script"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("script"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" app "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        firstName"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Hello，'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        lastName"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'world'")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    computed"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("fullName")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("firstName "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("lastName"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("script"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br")])]),n("h4",{attrs:{id:"计算属性vs方法"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#计算属性vs方法"}},[t._v("#")]),t._v(" 计算属性vs方法")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("一些计算属性能够做到的事情，使用方法同样能够做到，但就像上面所讲到的那样："),n("strong",[t._v("计算属性是基于它的依赖而进行缓存的")]),t._v("，相反使用方法的话，它会每次都计算一次，对于一些开销较大的逻辑，我们更推荐使用计算属性而不是方法。")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("app"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  计算属性：{{reverseMsg}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n  方法：{{reverseMsgMethods()}}\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" app "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      msg"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'hello,world'")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  computed"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("reverseMsg")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("msg"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("split")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("''")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("reverse")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("join")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("''")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  methods"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("reverseMsgMethods")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("msg"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("split")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("''")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("reverse")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("join")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("''")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br")])]),n("p",[n("strong",[t._v("运行结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(245),alt:"计算属性vs方法"}})]),t._v(" "),n("h4",{attrs:{id:"计算属性vs监听属性"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#计算属性vs监听属性"}},[t._v("#")]),t._v(" 计算属性vs监听属性")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("监听属性"),n("code",[t._v("watch")]),t._v("作用是当监听的属性值发生改变时，随后执行什么操作。")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("app"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  计算属性：{{fullName}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n  监听属性：{{fullName}}\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" app "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      firstName"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'foo'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      lastName"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bar'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      fullNameWatch"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'foo bar'")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  computed"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("fullName")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("firstName "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("' '")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("lastName"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  watch"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("firstName")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("val")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("fullNameWatch "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" val "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("' '")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("lastName"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("lastName")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("val")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("fullNameWatch "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("firstName "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("' '")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" val"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br")])]),n("p",[n("strong",[t._v("运行结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(246),alt:"运行结果"}})]),t._v(" "),n("h3",{attrs:{id:"计算属性的getter和setter"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#计算属性的getter和setter"}},[t._v("#")]),t._v(" 计算属性的getter和setter")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("计算属性默认只有"),n("code",[t._v("getter")]),t._v("，当然你也可以添加一个"),n("code",[t._v("setter")]),t._v("，它们分别会在读取计算属性和设置计算属性时被调用")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("app"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  计算属性的get和set：{{fullName}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" app "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      firstName"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'foo'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      lastName"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bar'")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  computed"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    fullName"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("get")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("firstName "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("' '")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("lastName"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("set")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("val"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" names "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" val"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("split")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("' '")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("firstName "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" names"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("lastName "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" names"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("names"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("length"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br")])]),n("p",[n("strong",[t._v("运行结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(247),alt:"运行结果"}})]),t._v(" "),n("h3",{attrs:{id:"class和style绑定"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#class和style绑定"}},[t._v("#")]),t._v(" Class和Style绑定")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("无论是"),n("code",[t._v("class")]),t._v("还是"),n("code",[t._v("style")]),t._v("的样式绑定，除了字符串类型，还可以是数组或者对象")])]),t._v(" "),n("h4",{attrs:{id:"绑定class"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#绑定class"}},[t._v("#")]),t._v(" 绑定Class")]),t._v(" "),n("div",{staticClass:"language-css line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-css"}},[n("code",[n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".active")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("color")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" red"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".star")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("background-color")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" #eee"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".star-active")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("background-color")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" #58a"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br")])]),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("app"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("span")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleChangeStyle"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("{active: isActive}"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("对象形式绑定class"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("span")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("span")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleAddStyle"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("[classArr]"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("对象形式绑定class"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("span")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" app "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      isActive"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      classArr"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'star'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  methods"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleChangeStyle")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("isActive "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("isActive"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleAddStyle")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("classArr"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'star-active'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br")])]),n("p",[n("strong",[t._v("绑定class结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(248),alt:"绑定结果"}})]),t._v(" "),n("h4",{attrs:{id:"绑定style"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#绑定style"}},[t._v("#")]),t._v(" 绑定style")]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("app"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("span")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleChangeStyle"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":")]),n("span",{pre:!0,attrs:{class:"token style-attr language-css"}},[n("span",{pre:!0,attrs:{class:"token attr-name"}},[n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("style")])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('="')]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[t._v("styleObj")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("对象形式绑定style"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("span")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("span")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":")]),n("span",{pre:!0,attrs:{class:"token style-attr language-css"}},[n("span",{pre:!0,attrs:{class:"token attr-name"}},[n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("style")])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('="')]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[t._v("[styleOne"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("styleTwo]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("对象形式绑定style"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("span")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" app "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      styleObj"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        fontSize"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'30px'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        color"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'red'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        backgroundColor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#58a'")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      styleOne"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        color"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#f60'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        backgroundColor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#333'")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      styleTwo"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        fontSize"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'20px'")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  methods"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleChangeStyle")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("isActive "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("isActive"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br")])]),n("p",[n("strong",[t._v("绑定style结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(249),alt:"绑定style结果"}})]),t._v(" "),n("h4",{attrs:{id:"处理厂商前缀"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#处理厂商前缀"}},[t._v("#")]),t._v(" 处理厂商前缀")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("在绑定"),n("code",[t._v("style")]),t._v("的语法中，如果"),n("code",[t._v("css")]),t._v("属性需要有不同兼容性浏览器的写法，"),n("code",[t._v("vue")]),t._v("提供了一种属性数组的方式来处理这种问题")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- 处理厂商前缀写法 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":")]),n("span",{pre:!0,attrs:{class:"token style-attr language-css"}},[n("span",{pre:!0,attrs:{class:"token attr-name"}},[n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("style")])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('="')]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("display")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" ["),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'-webkit-box'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'-ms-flexbox'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'flex'")]),t._v("]"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br")])]),n("h3",{attrs:{id:"条件渲染"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#条件渲染"}},[t._v("#")]),t._v(" 条件渲染")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[n("code",[t._v("Vue")]),t._v("中的条件渲染主要有两种，一种是"),n("code",[t._v("v-if")]),t._v("，另外一种是"),n("code",[t._v("v-show")])])]),t._v(" "),n("h4",{attrs:{id:"v-if、v-else-if和v-else"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#v-if、v-else-if和v-else"}},[t._v("#")]),t._v(" v-if、v-else-if和v-else")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[n("code",[t._v("v-if")]),t._v("指令用于条件性的渲染一块内容。只有当指令的表达式为真值是才显示到页面上，并且"),n("code",[t._v("v-if")]),t._v("还可以和"),n("code",[t._v("v-else")]),t._v("、"),n("code",[t._v("v-else-if")]),t._v("混合一起使用")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("app"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- v-if单独使用 --\x3e")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-if")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("单独使用"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- v-if和v-else配合使用 --\x3e")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-if")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("显示"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-else")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("不显示"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n  "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- v-if、v-else-if、v-else使用 --\x3e")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-if")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("type=='A'"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" this is A "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-else-if")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("type=='B'"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" this is B "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-else")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" this is others "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    type"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'A'")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br")])]),n("p",[n("strong",[t._v("v-if条件渲染结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(250),alt:"v-if条件渲染"}})]),t._v(" "),n("h4",{attrs:{id:"v-if渲染分组"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#v-if渲染分组"}},[t._v("#")]),t._v(" v-if渲染分组")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("如果多个元素标签要依赖同一个变量的值，控制是否在页面中显示，可以使用"),n("code",[t._v("template")]),t._v("进行渲染分组")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- 渲染分组 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("template")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-if")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("isLogin"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("用户名：{{username}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("手机号：{{phone}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("收获地址：{{address}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("template")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    isLogin"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    username"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'aaa'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    phone"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'13886867272'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    address"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'广东广州'")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br")])]),n("p",[n("strong",[t._v("渲染结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(251),alt:"分组渲染结果"}})]),t._v(" "),n("h4",{attrs:{id:"v-if管理可复用的元素"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#v-if管理可复用的元素"}},[t._v("#")]),t._v(" v-if管理可复用的元素")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("由于"),n("code",[t._v("Vue")]),t._v("会采用"),n("code",[t._v("diff")]),t._v("算法尽量可服用页面的"),n("code",[t._v("html")]),t._v("标签，所以如果有不需要出现这种情况，可以在元素标签上绑定不同的"),n("code",[t._v("key")]),t._v("值")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- 管理可复用元素 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-if")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("type=='account'"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  用户名："),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-else")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  邮箱："),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    type"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'account'")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br")])]),n("p",[n("strong",[t._v("管理可复用元素结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(252),alt:"管理可复用元素"}})]),t._v(" "),n("p",[n("strong",[t._v("添加key值：")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- 管理可复用元素 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-if")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("type=='account'"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  用户名："),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("key")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("username"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-else")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  邮箱："),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("input")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("text"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("key")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("email"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br")])]),n("p",[n("strong",[t._v("添加key值后结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(253),alt:"添加key值后结果"}})]),t._v(" "),n("h4",{attrs:{id:"v-show"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#v-show"}},[t._v("#")]),t._v(" v-show")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[n("code",[t._v("v-show")]),t._v("和"),n("code",[t._v("v-if")]),t._v("的作用是相同的，不过不同的是："),n("code",[t._v("v-show")]),t._v("控制的元素始终会被渲染到页面上，只不过"),n("code",[t._v("v-show")]),t._v("是通过"),n("code",[t._v("display")]),t._v("属性来控制元素是否可见的")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-show")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("始终会出现在页面，通过display属性控制是否可见"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br")])]),n("h4",{attrs:{id:"v-if和v-show比较"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#v-if和v-show比较"}},[t._v("#")]),t._v(" v-if和v-show比较")]),t._v(" "),n("p",[n("code",[t._v("v-if")]),t._v("和"),n("code",[t._v("v-show")]),t._v("比较，有如下特点：")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("v-if")]),t._v("是真正的渲染，它会保证其块内的事件或者子组件在适当的时候进行销毁和重建")]),t._v(" "),n("li",[n("code",[t._v("v-if")]),t._v("存在一定的惰性，如果条件为假，则什么也不做，只有第一次渲染为真时，才会开始渲染条件块。")]),t._v(" "),n("li",[n("code",[t._v("v-if")]),t._v("相比"),n("code",[t._v("v-show")]),t._v("有更大的开销，如果其绑定的条件频繁改变的话，它要在页面中不断的添加和移除元素标签，而相比较而言，"),n("code",[t._v("v-show")]),t._v("绑定的块，只是单纯的样式切换")])]),t._v(" "),n("h3",{attrs:{id:"列表渲染"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#列表渲染"}},[t._v("#")]),t._v(" 列表渲染")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("可以使用"),n("code",[t._v("item in items")]),t._v("语法或者"),n("code",[t._v("item of items")]),t._v("方式来进行列表的列表的渲染。在使用"),n("code",[t._v("v-for")]),t._v("进行列表渲染时，始终绑定"),n("code",[t._v("key")]),t._v("是一个提高性能的好方法。")])]),t._v(" "),n("h4",{attrs:{id:"列表渲染数组"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#列表渲染数组"}},[t._v("#")]),t._v(" 列表渲染数组")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("item")]),t._v("代表循环渲染时，数组中的每一项")]),t._v(" "),n("li",[n("code",[t._v("key")]),t._v("代表循环渲染时，当前的索引值")])])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- 数组渲染 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-for")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("(item,index) in items"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":key")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("item.id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  {{item.text}} -- {{index}}\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    items"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'0001'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" text"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'js'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'0002'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" text"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'css'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'0003'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" text"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'html'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'0004'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" text"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'vue'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br")])]),n("p",[n("strong",[t._v("列表渲染结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(254),alt:"数组列表渲染结果"}})]),t._v(" "),n("h4",{attrs:{id:"列表渲染对象"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#列表渲染对象"}},[t._v("#")]),t._v(" 列表渲染对象")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("item")]),t._v("代表循环渲染时，对象的值")]),t._v(" "),n("li",[n("code",[t._v("key")]),t._v("代表循环渲染时，对象的键")]),t._v(" "),n("li",[n("code",[t._v("index")]),t._v("代表循环渲染时，当前的索引值")])])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- 对象渲染 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-for")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("(item,key,index) in student"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":key")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("index"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  {{item}} -- {{key}} -- {{index}}\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    student"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'张三'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      age"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("23")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      sex"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'男'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      address"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'广东广州'")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br")])]),n("p",[n("strong",[t._v("对象列表渲染结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(255),alt:"对象列表渲染结果"}})]),t._v(" "),n("h3",{attrs:{id:"数组、对象值更新检测"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#数组、对象值更新检测"}},[t._v("#")]),t._v(" 数组、对象值更新检测")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[n("code",[t._v("Vue")]),t._v(" 包含一组观察数组的变异方法，当使用它们会触发视图更新。这些方法如下：")]),t._v(" "),n("ol",[n("li",[n("strong",[t._v("shift")])]),t._v(" "),n("li",[n("strong",[t._v("unshift")])]),t._v(" "),n("li",[n("strong",[t._v("push")])]),t._v(" "),n("li",[n("strong",[t._v("pop")])]),t._v(" "),n("li",[n("strong",[t._v("splice")])]),t._v(" "),n("li",[n("strong",[t._v("sort")])]),t._v(" "),n("li",[n("strong",[t._v("reverse")])])])]),t._v(" "),n("p",[n("strong",[t._v("数组的更新检测：")]),t._v(" 由于"),n("code",[t._v("Vue")]),t._v("是响应式的，所以你利用数组的下标去更改值或者更改数组的长度，是无法触发视图更新的")]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" vm "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  data"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    items"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'a'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'b'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'c'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 不是响应性的")]),t._v("\nvm"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("items"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'d'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nvm"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("items"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("length "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br")])]),n("p",[n("strong",[t._v("解决办法：")]),t._v(" 第一个参数为要更改的数组，第二个参数为要更改项的索引，第三个参数为待更改的值")]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 这是响应性的")]),t._v("\nVue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("set")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("vm"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("items"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'d'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br")])]),n("p",[n("strong",[t._v("对象的更新检测：")]),t._v(" 相似的，只有在"),n("code",[t._v("data")]),t._v("中定义的对象属性，再做值的更改时，才会触发视图更新，新添加一个属性是不会触发视图更新的。")]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" vm "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  data"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    student"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'张三'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      age"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("23")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      sex"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'男'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 不是响应性的")]),t._v("\nvm"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("student"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("address "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'广东广州'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br")])]),n("p",[n("strong",[t._v("解决办法：")]),t._v(" 第一个参数为要更改的对象，第二个参数为要添加的键，第三个参数待添加键的值")]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 这是响应性的")]),t._v("\nVue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("set")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("vm"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("student"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'address'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'广东广州'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br")])]),n("h3",{attrs:{id:"修饰符"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#修饰符"}},[t._v("#")]),t._v(" 修饰符")]),t._v(" "),n("h4",{attrs:{id:"事件修饰符"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#事件修饰符"}},[t._v("#")]),t._v(" 事件修饰符")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("在"),n("code",[t._v("JavaScript")]),t._v("的代码编写的过程中，使用"),n("code",[t._v("event.preventDefault()")]),t._v("和"),n("code",[t._v("event.stopPropagation()")]),t._v("两个方法是非常常见的需求，为此"),n("code",[t._v("Vue")]),t._v("内置了几种事件修饰符：")]),t._v(" "),n("ul",[n("li",[n("code",[t._v(".stop")]),t._v("阻止冒泡")]),t._v(" "),n("li",[n("code",[t._v(".prevent")]),t._v("阻止浏览器的默认行为、")]),t._v(" "),n("li",[n("code",[t._v(".capture")]),t._v("事件捕获模式")]),t._v(" "),n("li",[n("code",[t._v(".self")]),t._v("只有触发元素是自身时才执行的事件")]),t._v(" "),n("li",[n("code",[t._v(".once")]),t._v("只执行一次的事件")]),t._v(" "),n("li",[n("code",[t._v(".passive")]),t._v("事件行为立即触发，而不会等待")])])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- 阻止冒泡 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("a")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click.stop")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("doThis"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("a")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- 阻止浏览器的默认行为 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("form")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@submit.prevent")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("onSubmit"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("form")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- 修饰符可以串联 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("a")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click.stop.prevent")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("doThis"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("a")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- 事件捕获模式 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click.capture")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("doThis"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("..."),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- 只有触发元素是自身时才执行的事件 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click.self")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("doThis"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("..."),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- 只执行一次的事件 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click.once")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("doThis"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("..."),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- 事件行为立即触发，而不会等待 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@scroll.passive")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("onScroll"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("..."),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br")])]),n("h4",{attrs:{id:"按键修饰符"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#按键修饰符"}},[t._v("#")]),t._v(" 按键修饰符")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("在监听键盘事件时，我们经常需要检查详细的按键。"),n("code",[t._v("Vue")]),t._v(" 允许为"),n("code",[t._v("v-on")]),t._v("在监听键盘事件时添加按键修饰符，常见的按钮修饰符有：")]),t._v(" "),n("ul",[n("li",[n("code",[t._v(".enter")]),t._v("回车键")]),t._v(" "),n("li",[n("code",[t._v(".tab")]),t._v("tab键")]),t._v(" "),n("li",[n("code",[t._v(".delete")]),t._v("删除键或者退格键")]),t._v(" "),n("li",[n("code",[t._v(".esc")])]),t._v(" "),n("li",[n("code",[t._v(".space")]),t._v("空格键")]),t._v(" "),n("li",[n("code",[t._v(".up")]),t._v("上方向键")]),t._v(" "),n("li",[n("code",[t._v(".down")]),t._v("下方向键")]),t._v(" "),n("li",[n("code",[t._v(".left")]),t._v("左方向键")]),t._v(" "),n("li",[n("code",[t._v(".right")]),t._v("右方向键")]),t._v(" "),n("li",[n("code",[t._v(".ctrl")])]),t._v(" "),n("li",[n("code",[t._v(".alt")])]),t._v(" "),n("li",[n("code",[t._v(".shift")])])])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- 回车键 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@keyup.enter")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("doThis"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("..."),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- esc键 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@keyup.esc")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("doThis"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("..."),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- 左方向键 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@keyup.left")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("doThis"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("..."),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- ctrl键 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@keyup.ctrl")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("doThis"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("..."),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br")])]),n("p",[n("strong",[t._v(".exact修饰符：")])]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[n("code",[t._v(".exact")]),t._v("修饰符允许你使用精确的按键组合来控制事件的触发")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- 有且只有ctrl按键被按下时触发 --\x3e")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click.ctrl.exact")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("onCtrlClick"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("A"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br")])]),n("h2",{attrs:{id:"vue组件"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vue组件"}},[t._v("#")]),t._v(" Vue组件")]),t._v(" "),n("h3",{attrs:{id:"使用组件的一些细节"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#使用组件的一些细节"}},[t._v("#")]),t._v(" 使用组件的一些细节")]),t._v(" "),n("h4",{attrs:{id:"is解决标签正确嵌套的问题"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#is解决标签正确嵌套的问题"}},[t._v("#")]),t._v(" is解决标签正确嵌套的问题")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("当在使用一些特定的标签中嵌套组件的时候，有时候可能报错，这个时候可以给组件添加"),n("code",[t._v("is")]),t._v("属性来解决")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("table")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("tbody")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("row")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("row")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("row")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("row")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("row")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("row")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("tbody")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("table")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[t._v("Vue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'row'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<tr> this is a row component!</tr>'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" app "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br")])]),n("p",[n("strong",[t._v("渲染结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(256),alt:"渲染结果"}})]),t._v(" "),n("p",[n("strong",[t._v("使用is属性：")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("table")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("tbody")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("tr")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("is")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("row"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("tr")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("tr")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("is")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("row"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("tr")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("tr")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("is")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("row"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("tr")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("tbody")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("table")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br")])]),n("p",[n("strong",[t._v("渲染结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(257),alt:"渲染结果"}})]),t._v(" "),n("h4",{attrs:{id:"ref引用"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#ref引用"}},[t._v("#")]),t._v(" ref引用")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("在某些情况下，我们不得不选择操作DOM，"),n("code",[t._v("Vue")]),t._v("提供了"),n("code",[t._v("ref")]),t._v("特性来让我们直接操作DOM。"),n("code",[t._v("ref")]),t._v("再不同的情况下，有不同的返回结果：")]),t._v(" "),n("ul",[n("li",[t._v("在普通的标签上，它返回元素标签本身")]),t._v(" "),n("li",[t._v("在组件上，它返回组件的引用")])])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("ref")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("hello"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleHelloClick"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("hello,world"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("item")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("ref")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("item"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@item-change")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleItemChange"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("item")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[t._v("Vue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'item'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      message"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'this is a  message!'")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  methods"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleItemClick")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("$emit")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'item-change'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<div @click=\"handleItemClick\">{{message}}</div>'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" app "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  methods"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleHelloClick")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      console"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("$refs"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("hello"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("innerHTML"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleItemChange")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      console"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("$refs"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("item"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("message"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br")])]),n("p",[n("strong",[t._v("引用结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(258),alt:"引用结果"}})]),t._v(" "),n("h3",{attrs:{id:"父子组件通信"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#父子组件通信"}},[t._v("#")]),t._v(" 父子组件通信")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("通信原则")]),t._v(" "),n("ul",[n("li",[t._v("父组件能向子组件传递任何类型的值，子组件通过"),n("code",[t._v("props")]),t._v("属性接受。")]),t._v(" "),n("li",[t._v("子组件不能修改父组件传递过来的值，子组件通过"),n("code",[t._v("this.$emit()")]),t._v("方法向父组件派发事件，并且这个事件可以携带参数。")])])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("counter")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":count")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("0"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@change")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleChange"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("counter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("counter")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":count")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("0"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@change")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleChange"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("counter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n{{total}}\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[t._v("Vue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'counter'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<div @click=\"handleCounterClick\">{{number}}</div>'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  props"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'count'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      number"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("count\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  methods"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleCounterClick")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("number"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("++")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("$emit")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'change'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" app "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      total"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  methods"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleChange")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("step")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("total "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" step"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br"),n("span",{staticClass:"line-number"},[t._v("25")]),n("br"),n("span",{staticClass:"line-number"},[t._v("26")]),n("br"),n("span",{staticClass:"line-number"},[t._v("27")]),n("br"),n("span",{staticClass:"line-number"},[t._v("28")]),n("br")])]),n("p",[n("strong",[t._v("父子组件通信结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(259),alt:"父子组件通信结果"}})]),t._v(" "),n("h3",{attrs:{id:"props组件参数校验"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#props组件参数校验"}},[t._v("#")]),t._v(" props组件参数校验")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("在父组件向子组件传递一些参数的时候，子组件有权对这些参数进行必要的校验，教研的内容包括：")]),t._v(" "),n("ul",[n("li",[t._v("参数的类型校验")]),t._v(" "),n("li",[t._v("参数是否必传")]),t._v(" "),n("li",[n("code",[t._v("validator")]),t._v("自定义校验规则")])])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("item")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("AAA"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":age")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("23"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("phone")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("13886867272"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("item")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[t._v("Vue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'item'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<div>姓名：{{name}}，年龄：{{age}}，手机号：{{phone}}</div>'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  props"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 字符串类型且必传")]),t._v("\n    name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      type"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" String"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      required"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 字符串类型或者数字类型，默认值为0")]),t._v("\n    age"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      type"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" String "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" Number"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 长度必须是11位")]),t._v("\n    phone"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("validator")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("value")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" value"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("length"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("11")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br")])]),n("p",[n("strong",[t._v("传参校验结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(260),alt:"传参校验结果"}})]),t._v(" "),n("h4",{attrs:{id:"props特性和非props特性"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#props特性和非props特性"}},[t._v("#")]),t._v(" Props特性和非Props特性")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("区别")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("props")]),t._v("特性传递的值不会出现在组件标签的属性上，并且在子组件中可以使用这个值")]),t._v(" "),n("li",[t._v("非"),n("code",[t._v("props")]),t._v("特性传递的值会出现在组件标签的属性上，并且不能在子组件中使用，会报错。")])])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("item")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("AAA"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":age")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("23"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("phone")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("13886867272"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("item")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[t._v("Vue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'item'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<div>姓名：{{name}}，年龄：0，手机号：{{phone}}</div>'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  props"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 字符串类型且必传")]),t._v("\n    name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      type"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" String"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      required"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 长度必须是11位")]),t._v("\n    phone"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("validator")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("value")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" value"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("length"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("11")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br")])]),n("p",[n("strong",[t._v("Props特性和非Props特性：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(261),alt:"Props特性和非Props特性"}})]),t._v(" "),n("h3",{attrs:{id:"组件绑定原生事件"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#组件绑定原生事件"}},[t._v("#")]),t._v(" 组件绑定原生事件")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("如果要给一个组件绑定事件，可以使用"),n("code",[t._v(".native")]),t._v("修饰符，如果不写"),n("code",[t._v(".native")]),t._v("则表示监听的是自定义事件")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("item")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click.native")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleItemClick"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("item")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[t._v("Vue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'item'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<div>hello,world</div>'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" app "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  methods"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleItemClick")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      console"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'item native click'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br")])]),n("p",[n("strong",[t._v("组件绑定原生事件结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(262),alt:"组件绑定原生事件结果"}})]),t._v(" "),n("h3",{attrs:{id:"组件插槽"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#组件插槽"}},[t._v("#")]),t._v(" 组件插槽")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("理解")]),t._v(" "),n("p",[n("code",[t._v("Vue")]),t._v("中组件的"),n("code",[t._v("slot")]),t._v("插槽，简单理解就是：父组件可以向子组件传递一段"),n("code",[t._v("html")]),t._v("内容，子组件在合适的位置接受。在"),n("code",[t._v("Vue")]),t._v("中，关于插槽有三种情况：")]),t._v(" "),n("ul",[n("li",[t._v("普通的"),n("code",[t._v("slot")]),t._v("插槽")]),t._v(" "),n("li",[t._v("具名"),n("code",[t._v("slot")]),t._v("插槽")]),t._v(" "),n("li",[t._v("作用域插槽"),n("code",[t._v("slot-scope")])])])]),t._v(" "),n("h4",{attrs:{id:"普通插槽slot"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#普通插槽slot"}},[t._v("#")]),t._v(" 普通插槽slot")]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("item")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("这里是父组件给的html内容"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("item")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[t._v("Vue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'item'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<div><slot></slot></div>'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br")])]),n("p",[n("strong",[t._v("普通插槽的结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(263),alt:"普通插槽的结果"}})]),t._v(" "),n("h4",{attrs:{id:"具名插槽"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#具名插槽"}},[t._v("#")]),t._v(" 具名插槽")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("当父组件需要传递多模块的内容给子组件时，子组件需要写多个"),n("code",[t._v("slot")]),t._v("插槽，这个时候需要给每一个插槽起一个名字")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("item")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("slot")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("header"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("header"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("slot")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("footer"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("footer"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("item")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[t._v("Vue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'item'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token template-string"}},[n("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('<div>\n              <slot name="header"></slot>\n              <div>content</div>\n              <slot name="footer"></slot>\n              <slot name="copyright"><div>default slot</div></slot>\n            </div>')]),n("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br")])]),n("p",[n("strong",[t._v("具名插槽的结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(264),alt:"具名插槽的结果"}})]),t._v(" "),n("h4",{attrs:{id:"作用域插槽"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#作用域插槽"}},[t._v("#")]),t._v(" 作用域插槽")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("作用域插槽能让插槽中的内容能够访问子组件中的数据")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("item")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("template")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("slot-scope")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("props"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("li")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("{{props.item}}--\x3ehello,world"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("li")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("template")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("item")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[t._v("Vue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'item'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      list"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token template-string"}},[n("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('<div>\n              <ul>\n                <slot v-for="item in list" :item="item"></slot>\n              </ul>\n            </div>')]),n("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br")])]),n("p",[n("strong",[t._v("作用域插槽的结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(265),alt:"作用域插槽的结果"}})]),t._v(" "),n("h3",{attrs:{id:"动态组件"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#动态组件"}},[t._v("#")]),t._v(" 动态组件")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("使用"),n("code",[t._v("component")]),t._v("组件，再配合此组件的"),n("code",[t._v("is")]),t._v("属性能够实现组件的动态切换")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("component")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":is")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("type"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("component")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleChange"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("change"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[t._v("Vue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'child-one'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<div>child-one</div>'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nVue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'child-two'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<div>child-two</div>'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" app "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      type"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'child-one'")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  methods"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleChange")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("type "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("type"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'child-one'")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'child-two'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'child-one'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br")])]),n("p",[n("strong",[t._v("动态组件结果：")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(266),alt:"动态组件结果"}})]),t._v(" "),n("h4",{attrs:{id:"v-once指令配合动态组件"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#v-once指令配合动态组件"}},[t._v("#")]),t._v(" v-once指令配合动态组件")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("在动态组件的切换过程中，会不断的销毁和重建子组件，如果组件的内容是相对固定的，可以在子组件上使用"),n("code",[t._v("v-once")]),t._v("指令来缓存。")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[t._v("Vue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'child-one'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<div v-once>child-one</div>'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nVue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'child-two'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<div v-once>child-two</div>'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br")])]),n("h4",{attrs:{id:"keep-alive保持动态组件的状态"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#keep-alive保持动态组件的状态"}},[t._v("#")]),t._v(" keep-alive保持动态组件的状态")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("相同的道理，由于在动态组件的切换过程中，会不断的销毁和重建组件，如果你想保持一些组件的状态时，可以使用"),n("code",[t._v("keep-alive")]),t._v("组件来进行组件缓存")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("keep-alive")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("component")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":is")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("type"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("component")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("keep-alive")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleChange"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("change"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br")])]),n("h2",{attrs:{id:"vue动画"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vue动画"}},[t._v("#")]),t._v(" Vue动画")]),t._v(" "),n("h3",{attrs:{id:"vue动画原理"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vue动画原理"}},[t._v("#")]),t._v(" Vue动画原理")]),t._v(" "),n("p",[t._v("Vue在插入、移除DOM时，提供了多种应用过渡和动画的方式。")]),t._v(" "),n("ul",[n("li",[t._v("在CSS过渡和动画中自动应用"),n("code",[t._v("Class")])]),t._v(" "),n("li",[t._v("应用第三方动画库，例如: Animation.css")]),t._v(" "),n("li",[t._v("提供动画钩子函数，可以使用自己的"),n("code",[t._v("js")]),t._v("动画或者第三方"),n("code",[t._v("js")]),t._v("动画库")])]),t._v(" "),n("p",[n("strong",[t._v("先决条件：")]),t._v(" 在应用动画时，决定动画是否能起作用，关键是要看标签是否有"),n("code",[t._v("v-show")]),t._v("或者"),n("code",[t._v("v-if")]),t._v("，以及是否被"),n("code",[t._v("transition")]),t._v("组件包裹")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("v-show")]),t._v("条件展示")]),t._v(" "),n("li",[n("code",[t._v("v-if")]),t._v("条件渲染")]),t._v(" "),n("li",[n("code",[t._v("transition")]),t._v("Vue动画组件")])]),t._v(" "),n("p",[n("strong",[t._v("过渡的类名：")]),t._v(" 在进入/离开的过渡中，Vue过在合适的时机帮我们自动添加对应的"),n("code",[t._v("class")])]),t._v(" "),n("ul",[n("li",[n("code",[t._v("v-enter")]),t._v("：定义进入过渡的开始状态。在元素被插入之前生效，在元素被插入之后的下一帧移除。")]),t._v(" "),n("li",[n("code",[t._v("v-enter-active")]),t._v("：定义进入过渡生效时的状态。在整个进入过渡的阶段中应用，在元素被插入之前生效，在过渡/动画完成之后移除。这个类可以被用来定义进入过渡的过程时间，延迟和曲线函数。")]),t._v(" "),n("li",[n("code",[t._v("v-enter-to")]),t._v("：定义进入过渡的结束状态。在元素被插入之后下一帧生效 (与此同时 v-enter 被移除)，在过渡/动画完成之后移除。")]),t._v(" "),n("li",[n("code",[t._v("v-leave")]),t._v("：定义离开过渡的开始状态。在离开过渡被触发时立刻生效，下一帧被移除。")]),t._v(" "),n("li",[n("code",[t._v("v-leave-active")]),t._v("：定义离开过渡生效时的状态")]),t._v(" "),n("li",[n("code",[t._v("v-leave-to")]),t._v("：定义离开过渡的结束状态。在离开过渡被触发之后下一帧生效 (与此同时 v-leave 被删除)，在过渡/动画完成之后移除。")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(267),alt:"动画原理"}})]),t._v(" "),n("h3",{attrs:{id:"vue中使用过渡-动画"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vue中使用过渡-动画"}},[t._v("#")]),t._v(" Vue中使用过渡/动画")]),t._v(" "),n("h4",{attrs:{id:"vue中使用过渡"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vue中使用过渡"}},[t._v("#")]),t._v(" Vue中使用过渡")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("在"),n("code",[t._v("Vue")]),t._v("中定义过渡，只要使用几个过渡类名即可")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("v-enter")]),t._v("和"),n("code",[t._v("v-leave-to")])]),t._v(" "),n("li",[n("code",[t._v("v-enter-active")]),t._v("和"),n("code",[t._v("v-leave-active")])]),t._v(" "),n("li",[t._v("PS：不给"),n("code",[t._v("transition")]),t._v("添加"),n("code",[t._v("name")]),t._v("，则默认过渡类名为"),n("code",[t._v("v")]),t._v("开头，添加"),n("code",[t._v("name")]),t._v("，则以命名的"),n("code",[t._v("name")]),t._v("开头，例如下列："),n("code",[t._v(".fade-enter")])])])]),t._v(" "),n("div",{staticClass:"language-css line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-css"}},[n("code",[n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".fade-enter, .fade-leave-to")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("opacity")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" 0\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".fade-enter-active, .fade-leave-active")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("transition")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" opacity  0.3s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br")])]),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("transition")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("fade"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-show")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Hello,world"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("transition")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleShowClick"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("切换"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" vm "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  methods"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleShowClick")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("isShow "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br")])]),n("p",[t._v("过渡gif录制中...")]),t._v(" "),n("h4",{attrs:{id:"vue中使用动画"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vue中使用动画"}},[t._v("#")]),t._v(" Vue中使用动画")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("Vue中动画的用法同Vue过渡，区别在于"),n("code",[t._v("v-enter")]),t._v("这个类名不会在DOM节点插入后立即删除，而是在"),n("code",[t._v("animationend")]),t._v("事件触发后删除。")])]),t._v(" "),n("div",{staticClass:"language-css line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-css"}},[n("code",[n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".bounce-enter-active")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("transform-origin")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" left center"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("animation")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" bounce-in .5s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".bounce-leave-active")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("transform-origin")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" left center"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("animation")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" bounce-in .5s reverse"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token atrule"}},[n("span",{pre:!0,attrs:{class:"token rule"}},[t._v("@keyframes")]),t._v(" bounce-in")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token selector"}},[t._v("0%")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("transform")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("scale")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("0"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token selector"}},[t._v("50%")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("transform")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("scale")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("1.5"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token selector"}},[t._v("100%")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("transform")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("scale")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("1"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br")])]),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("transition")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("bounce"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-if")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Hello, world"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("transition")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("isShow=!isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("切换"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" vm "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br")])]),n("p",[t._v("动画gif录制中...")]),t._v(" "),n("h4",{attrs:{id:"动画和过渡一起使用"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#动画和过渡一起使用"}},[t._v("#")]),t._v(" 动画和过渡一起使用")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("如果要同时使用过渡和动画，由于动画和过渡持续的时间可能并不是一样的，所以需要给"),n("code",[t._v("transition")]),t._v("组件指定一个"),n("code",[t._v("type")]),t._v("，其属性值有："),n("code",[t._v("transition")]),t._v("和"),n("code",[t._v("animation")]),t._v("。还可以对动画时间进行控制。")])]),t._v(" "),n("p",[n("strong",[t._v("控制动画持续时间：")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("transition")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("animation"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("fade"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":duration")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("1000"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" \n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("enter-active-class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("bounce-enter-active"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("leave-active-class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("bounce-leave-active"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br")])]),n("p",[n("strong",[t._v("分别控制进入和离开动画时间：")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("transition")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("animation"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("fade"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":duration")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("{enter: 500, leave: 800}"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" \n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("enter-active-class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("bounce-enter-active"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("leave-active-class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("bounce-leave-active"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br")])]),n("div",{staticClass:"language-css line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-css"}},[n("code",[n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".fade-enter, .fade-leave-to")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("opacity")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" 0\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".fade-enter-active, .fade-leave-active")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("transition")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" opacity  0.3s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".bounce-enter-active")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("transform-origin")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" left center"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("animation")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" bounce-in .5s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".bounce-leave-active")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("transform-origin")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" left center"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("animation")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" bounce-in .5s reverse"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token atrule"}},[n("span",{pre:!0,attrs:{class:"token rule"}},[t._v("@keyframes")]),t._v(" bounce-in")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token selector"}},[t._v("0%")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("transform")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("scale")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("0"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token selector"}},[t._v("50%")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("transform")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("scale")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("1.5"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token selector"}},[t._v("100%")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("transform")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("scale")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("1"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br"),n("span",{staticClass:"line-number"},[t._v("25")]),n("br"),n("span",{staticClass:"line-number"},[t._v("26")]),n("br")])]),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("transition")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("type")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("animation"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("fade"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("enter-active-class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("bounce-enter-active"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("leave-active-class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("bounce-leave-active"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-if")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Hello, world"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("transition")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("isShow=!isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("切换"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" vm "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br")])]),n("p",[t._v("动画gif录制中")]),t._v(" "),n("h3",{attrs:{id:"使用第三方动画库"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#使用第三方动画库"}},[t._v("#")]),t._v(" 使用第三方动画库")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("第三方动画库，例如"),n("code",[t._v("Animation.css")]),t._v("，用法同Vue中动画的用法类似，只不过把"),n("code",[t._v("animation")]),t._v("动画的名字改成第三方动画库的名字。(引入"),n("code",[t._v("Animation.css")]),t._v("文件)")])]),t._v(" "),n("div",{staticClass:"language-css line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-css"}},[n("code",[n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".animation-enter-active")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("animation")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" flash .5s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".animation-leave-active")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("animation")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" shake .5s reverse"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br")])]),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("transition")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("animation"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-if")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Hello, world"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("transition")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("isShow=!isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("切换"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n```js\nvar vm = new Vue({\n  el: '#app',\n  data() {\n    return {\n      isShow: true\n    }\n  }\n})\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br")])]),n("p",[t._v("动画gif录制中")]),t._v(" "),n("h3",{attrs:{id:"vue初始过渡"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vue初始过渡"}},[t._v("#")]),t._v(" Vue初始过渡")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("无论是过渡还是动画，都依赖于元素标签的移除、插入和显示，意味着初始化时不会有动画效果，可以使用"),n("code",[t._v("appear")]),t._v("来实现初始化时有过渡和动画的效果。")])]),t._v(" "),n("div",{staticClass:"language-css line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-css"}},[n("code",[n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".flash-enter-active")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("animation")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" flash .5s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".bounce-leave-active")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("animation")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" shake .5s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br")])]),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("transition")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("appear")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("enter-active-class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("flash-enter-active"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("leave-active-class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("bounce-leave-active"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("appear-active-class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("flash-enter-active"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-if")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Hello, world"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("transition")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("isShow=!isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("切换"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" vm "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br")])]),n("p",[t._v("动画gif录制中")]),t._v(" "),n("h3",{attrs:{id:"vue中使用js动画库"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vue中使用js动画库"}},[t._v("#")]),t._v(" Vue中使用JS动画库")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("在一个动画的执行周期中，Vue提供了不同的钩子函数来让我们可以自定义自己的"),n("code",[t._v("js")]),t._v("动画，当然也可以使用第三方"),n("code",[t._v("js")]),t._v("动画。在纯粹使用"),n("code",[t._v("js")]),t._v("动画时，可以使用"),n("code",[t._v(':css="false"')]),t._v("来避免Vue的CSS监测。")])]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("在钩子函数"),n("code",[t._v("enter(el,done)")]),t._v("和"),n("code",[t._v("leave(el,done)")]),t._v("中的"),n("code",[t._v("done")]),t._v("方法必须进行回调，否则将被同步执行，过渡会立即完成。")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("transition")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@before-enter")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handelBeforeEnter"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@enter")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleEnter"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@after-enter")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleAfterEnter"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@before-leave")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleBeforeLeave"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@leave")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleLeave"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@after-leave")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleAfterLeave"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-if")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Hello, world"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("transition")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("isShow=!isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("切换"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" vm "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  methods"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handelBeforeEnter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("el")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("style"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("color "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'red'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n      console"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'before enter'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleEnter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("done")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("setTimeout")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("style"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("color "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'green'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("done")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n        console"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'enter'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1500")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleAfterEnter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("el")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      console"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'after enter'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleBeforeLeave")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("el")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("style"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("color "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'yellow'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n      console"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'before leave'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleLeave")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("done")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("setTimeout")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("style"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("color "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'blue'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("done")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n        console"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'leave'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1000")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleAfterLeave")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("el")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      console"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'after leave'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br"),n("span",{staticClass:"line-number"},[t._v("25")]),n("br"),n("span",{staticClass:"line-number"},[t._v("26")]),n("br"),n("span",{staticClass:"line-number"},[t._v("27")]),n("br"),n("span",{staticClass:"line-number"},[t._v("28")]),n("br"),n("span",{staticClass:"line-number"},[t._v("29")]),n("br"),n("span",{staticClass:"line-number"},[t._v("30")]),n("br"),n("span",{staticClass:"line-number"},[t._v("31")]),n("br"),n("span",{staticClass:"line-number"},[t._v("32")]),n("br"),n("span",{staticClass:"line-number"},[t._v("33")]),n("br"),n("span",{staticClass:"line-number"},[t._v("34")]),n("br"),n("span",{staticClass:"line-number"},[t._v("35")]),n("br"),n("span",{staticClass:"line-number"},[t._v("36")]),n("br"),n("span",{staticClass:"line-number"},[t._v("37")]),n("br"),n("span",{staticClass:"line-number"},[t._v("38")]),n("br"),n("span",{staticClass:"line-number"},[t._v("39")]),n("br")])]),n("p",[t._v("动画gif录制中...")]),t._v(" "),n("h3",{attrs:{id:"多个元素-组件过渡"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#多个元素-组件过渡"}},[t._v("#")]),t._v(" 多个元素/组件过渡")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("同动态组件"),n("code",[t._v("component")]),t._v("，在切换相同的DOM元素时，Vue会复用DOM元素，如果这不是我们想要的结果，可以像"),n("code",[t._v("component")]),t._v("一样，始终给元素标签设置一个key是一个好的选择")])]),t._v(" "),n("div",{staticClass:"language-css line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-css"}},[n("code",[n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".v-enter,.v-leave-to")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("opacity")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" 0"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".v-enter-active, .v-leave-active")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("transition")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" opacity 0.5s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br")])]),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("transition")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-if")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("key")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("A"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" this is A"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-else")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("key")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("others"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" this is others"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("transition")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("isShow=!isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("切换"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" vm "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br")])]),n("p",[t._v("动画gif录制中")]),t._v(" "),n("h3",{attrs:{id:"vue中列表过渡"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vue中列表过渡"}},[t._v("#")]),t._v(" Vue中列表过渡")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("前面讲到的过渡/动画，全部是一个元素的过渡/动画，或者多个元素中的一个进行过渡/动画，可以使用"),n("code",[t._v("transition-group")]),t._v("组件来结合"),n("code",[t._v("v-for")]),t._v("进行列表的过渡/动画")])]),t._v(" "),n("div",{staticClass:"language-css line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-css"}},[n("code",[n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".item")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("display")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" inline-block"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("margin-right")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" 10px"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".v-enter,.v-leave-to")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("opacity")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" 0"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("transform")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("translateY")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("30px"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token selector"}},[t._v(".v-enter-active, .v-leave-active")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("transition")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" all 0.5s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br")])]),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("transition-group")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-for")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("(item,index) in list"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":key")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("item"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("item"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("{{item}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("transition-group")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleAddClick"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("添加"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" vm "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      isShow"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      list"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  methods"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleAddClick")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" maxItem "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("list"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("list"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("length"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("list"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("maxItem"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br")])]),n("p",[t._v("动画gif录制中")]),t._v(" "),n("h2",{attrs:{id:"vue-router-路由"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vue-router-路由"}},[t._v("#")]),t._v(" Vue-Router(路由)")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成，让构建单页面应用变得易如反掌")])]),t._v(" "),n("h3",{attrs:{id:"安装-2"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#安装-2"}},[t._v("#")]),t._v(" 安装")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("Vue Router 它依赖于 Vue.js，主要安装方式有两种，一种是通过 Script 标签引入，另一种是通过 npm 引入。")])]),t._v(" "),n("h4",{attrs:{id:"通过script引入"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#通过script引入"}},[t._v("#")]),t._v(" 通过Script引入")]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://unpkg.com/vue/dist/vue.js"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token script"}}),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("script")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://unpkg.com/vue-router/dist/vue-router.js"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token script"}}),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("script")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br")])]),n("h4",{attrs:{id:"通过模块化引入"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#通过模块化引入"}},[t._v("#")]),t._v(" 通过模块化引入")]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 安装npm包")]),t._v("\n$ npm install vue"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("router\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 模块化引入")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Vue "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'vue'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" VueRouter "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'vue-router'")]),t._v("\nVue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("use")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("VueRouter"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br")])]),n("h3",{attrs:{id:"动态路由"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#动态路由"}},[t._v("#")]),t._v(" 动态路由")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("我们有时间需要把一组固定的URL路由到同一个组件，例如我们有"),n("code",[t._v("User")]),t._v("组件，对于不同ID的用户，都要使用这个组件来渲染。可以通过"),n("code",[t._v("/user/:id")]),t._v("的形式，来匹配路由，其id参数可以通过"),n("code",[t._v("this.$route.params.id")]),t._v("来获取，这种就叫做动态路由。")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" User "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<div>{{$route.params.id}}<div>'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" router "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("VueRouter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  routes"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" path"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/user/:id'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" component"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" User "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br")])]),n("p",[t._v("我们也可以使用多段动态路由匹配规则，参数同样保存在"),n("code",[t._v("this.$route.params")]),t._v("中：")]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" User "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<div>{{$route.params.username}} - {{$route.params.postId}}<div>'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" router "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("VueRouter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  routes"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" path"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/user/:username/post/:postId'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" component"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" User "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br")])]),n("h3",{attrs:{id:"嵌套路由"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#嵌套路由"}},[t._v("#")]),t._v(" 嵌套路由")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("实际应用中，项目往往是由多层嵌套的组件组合而成，可以利用Vue Router来轻松实现这一点。")])]),t._v(" "),n("div",{staticClass:"custom-block warning"},[n("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),n("p",[t._v("在子组件中不要已"),n("code",[t._v("/")]),t._v("开头，如果带上"),n("code",[t._v("/")]),t._v("，它会被认为是根路径下的路由。")])]),t._v(" "),n("p",[n("strong",[t._v("创建根节点：")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("app"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("router-link")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("to")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("/user/123"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("用户信息"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("router-link")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("router-view")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("router-view")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br")])]),n("p",[n("strong",[t._v("创建路由以及子组件：")])]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("子路由通过在父路由中写"),n("code",[t._v("children")]),t._v("属性，它是一个数组，用法同普通的路由一致。")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" User "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token template-string"}},[n("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('\n    <div class="user">\n      <h2>参数：{{$route.params.id}}</h2>\n      <router-link to="/user/123/order">订单信息</router-link>\n      <router-link to="/user/123/address">地址信息</router-link>\n      <router-link to="/user/123/avatar">头像信息</router-link>\n      <router-view></router-view>\n    </div>')]),n("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" UserOrder "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<div>这里是用户订单信息页面</div>'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" UserAddress "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<div>这里是用户地址信息页面</div>'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" UserAvatar "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<div>这里是用户头像信息页面</div>'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" router "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("VueRouter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  routes"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" path"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/user/:id'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" component"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" User"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" children"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 不要带/")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" path"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'order'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" component"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" UserOrder"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" path"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'address'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" component"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" UserAddress"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" path"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'avatar'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" component"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" UserAvatar"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" vue "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  router\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("$mount")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br"),n("span",{staticClass:"line-number"},[t._v("25")]),n("br"),n("span",{staticClass:"line-number"},[t._v("26")]),n("br"),n("span",{staticClass:"line-number"},[t._v("27")]),n("br"),n("span",{staticClass:"line-number"},[t._v("28")]),n("br"),n("span",{staticClass:"line-number"},[t._v("29")]),n("br"),n("span",{staticClass:"line-number"},[t._v("30")]),n("br"),n("span",{staticClass:"line-number"},[t._v("31")]),n("br"),n("span",{staticClass:"line-number"},[t._v("32")]),n("br"),n("span",{staticClass:"line-number"},[t._v("33")]),n("br")])]),n("p",[n("img",{attrs:{src:a(268),alt:"嵌套路由"}})]),t._v(" "),n("h3",{attrs:{id:"编程式导航"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#编程式导航"}},[t._v("#")]),t._v(" 编程式导航")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("router.push()")]),t._v(" "),n("p",[t._v("除了使用"),n("code",[t._v('<router-link to="xxx">')]),t._v("这种创建a标签来导航链接的"),n("strong",[t._v("声明式")]),t._v("导航，我们还可以使用代码来进行"),n("strong",[t._v("编程式")]),t._v("导航。")])]),t._v(" "),n("div",{staticClass:"custom-block warning"},[n("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),n("p",[t._v("提供了"),n("code",[t._v("path")]),t._v("，"),n("code",[t._v("params")]),t._v("会被忽略。")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 字符串")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("$router"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'home'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 对象")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("$router"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" path"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'home'")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 命名的路由")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("$router"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'user'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" params"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" userId"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'123'")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 带查询参数，变成 /register?plan=private")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("$router"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" path"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'register'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" query"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" plan"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'private'")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br")])]),n("p",[n("strong",[t._v("注意：")]),t._v(" 如果当前路由和待导航的路由是一致的，只是参数不同，这种情况下，需要使用"),n("code",[t._v("beforeRouteUpdate")]),t._v("来获取参数的变化。")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("router.replace()")]),t._v(" "),n("p",[n("code",[t._v("router.replace()")]),t._v(" 与"),n("code",[t._v("router.push()")]),t._v("方法很相似，区别在于"),n("code",[t._v("router-replace()")]),t._v("不会像"),n("code",[t._v("history")]),t._v("中添加新纪录，而是替换掉当前的记录。")]),t._v(" "),n("ul",[n("li",[n("code",[t._v('<router-link to="xxx" replace>')])]),t._v(" "),n("li",[n("code",[t._v("router.replace('xxx')")])])])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 如果路由是/user，要替换到/order")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("$router"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("replace")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'order'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br")])]),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("router.go()")]),t._v(" "),n("p",[n("code",[t._v("router.go()")]),t._v("的表现行为同"),n("code",[t._v("history")]),t._v("的表现形式是一致的")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 前进一步 == history.forward()")]),t._v("\nrouter"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("go")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 后退一步 == history.back()")]),t._v("\nrouter"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("go")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 前进三步")]),t._v("\nrouter"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("go")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br")])]),n("h3",{attrs:{id:"命名路由和命令视图"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#命名路由和命令视图"}},[t._v("#")]),t._v(" 命名路由和命令视图")]),t._v(" "),n("h4",{attrs:{id:"命名路由"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#命名路由"}},[t._v("#")]),t._v(" 命名路由")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("有时候通过名称来标记一个路由会显得非常方便，特别是在一个连接，执行某一些跳转的时候。可以通过设置路由的名字来实现一点，参考如下")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" router "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("VueRouter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  routes"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      path"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/user/:userId'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'user'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      component"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" User\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br")])]),n("p",[n("strong",[t._v("在声明式导航中使用命名路由：")]),t._v(" "),n("code",[t._v('<router-link to="xxx">')]),t._v(" 其中"),n("code",[t._v("to")]),t._v("可以接受一个对象")]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("router-link")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("to")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("{ name:'user', params:{ id: 123 }}"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("router-link")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br")])]),n("p",[n("strong",[t._v("在编程式导航中使用命名路由：")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("$router"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'user'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" params"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("123")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br")])]),n("h4",{attrs:{id:"命名视图"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#命名视图"}},[t._v("#")]),t._v(" 命名视图")]),t._v(" "),n("p",[t._v("有时候想同级展示多个视图，而不是嵌套视图，例如："),n("code",[t._v("sidebar")]),t._v("和"),n("code",[t._v("main")]),t._v("，这个时候命名视图就派上了用场，如果写"),n("code",[t._v("name")]),t._v("属性，则默认是"),n("code",[t._v("default")]),t._v("。")]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("router-view")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("router-view")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("router-view")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("address"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("router-view")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("router-view")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("avatar"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("router-view")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" UserOrder "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<div>这里是用户订单信息页面</div>'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" UserAddress "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<div>这里是用户地址信息页面</div>'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" UserAvatar "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<div>这里是用户头像信息页面</div>'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" router "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("VueRouter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  routes"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" \n      path"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" components"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" UserOrder"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'address'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" UserAddress"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'avatar'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" UserAvatar\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" vue "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  router\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("$mount")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br")])]),n("h3",{attrs:{id:"导航守卫"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#导航守卫"}},[t._v("#")]),t._v(" 导航守卫")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("顾名思义，导航既意味着路由正在发生变化，Vue Router 提供的导航守卫功能主要用来通过跳转或者取消的方式守卫导航，导航守卫有多种情况：")]),t._v(" "),n("ul",[n("li",[t._v("全局导航守卫")]),t._v(" "),n("li",[t._v("单个路由独享的导航守卫")]),t._v(" "),n("li",[t._v("组件级导航守卫")])])]),t._v(" "),n("h4",{attrs:{id:"全局导航守卫"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#全局导航守卫"}},[t._v("#")]),t._v(" 全局导航守卫")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("可以使用"),n("code",[t._v("router.beforeEach()")]),t._v("来注册一个全局的前置守卫，可以使用"),n("code",[t._v("router.afterEach()")]),t._v("来注册全局的后置守卫")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" router "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("VueRouter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 前置守卫")]),t._v("\nrouter"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("beforeEach")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("to"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" next")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// todo")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 后置守卫")]),t._v("\nrouter"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("afterEach")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("to"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// todo")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br")])]),n("p",[n("strong",[t._v("参数解析：")])]),t._v(" "),n("ul",[n("li",[n("code",[t._v("to")]),t._v("：即将要进入的目标")]),t._v(" "),n("li",[n("code",[t._v("from")]),t._v("：即将要离开的目标")]),t._v(" "),n("li",[n("code",[t._v("next")]),t._v("：在前置守卫中，一定要调用该方法来"),n("code",[t._v("resolve")]),t._v("前置守卫这个钩子，前值守卫的执行效果依赖于它所传递的参数。"),n("br")])]),t._v(" "),n("p",[n("strong",[t._v("next参数解析：")])]),t._v(" "),n("ol",[n("li",[n("code",[t._v("next()")]),t._v("执行管道中的下一个钩子。")]),t._v(" "),n("li",[n("code",[t._v("next(false)")]),t._v("中断导航")]),t._v(" "),n("li",[n("code",[t._v("next('xxx')")]),t._v("跳转到一个不同的地址")]),t._v(" "),n("li",[n("code",[t._v("next(new Error())")]),t._v("导航被终止")])]),t._v(" "),n("h4",{attrs:{id:"路由独享的守卫"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#路由独享的守卫"}},[t._v("#")]),t._v(" 路由独享的守卫")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("可以在某一个路由下直接定义"),n("code",[t._v("beforeEnter()")]),t._v("方法，它的参数和用法同全局导航守卫一样。")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" router "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("VueRouter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  routes"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      path"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/foo'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      component"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Foo"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("beforeEnter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("to"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" next")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// todo")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br")])]),n("h4",{attrs:{id:"组件内的守卫"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#组件内的守卫"}},[t._v("#")]),t._v(" 组件内的守卫")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("我们可以在任意组件中使用如下几个函数：")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("beforeRouteEnter(to, from, next)")]),t._v("：渲染此组件对应的路由"),n("code",[t._v("confirm")]),t._v("之前被调用")]),t._v(" "),n("li",[n("code",[t._v("beforeRouteUpdate(to, from, next)")]),t._v(": 当路由被改变，但组件被复用时触发，例如"),n("code",[t._v("/user/1")]),t._v(" 导航到 "),n("code",[t._v("/user/2")])]),t._v(" "),n("li",[n("code",[t._v("beforeRouteLeave(to, from, next)")]),t._v("：导航离开该组件对应的路由时触发")])])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" User "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<div>User</div>'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("beforeRouteEnter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("to"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" next")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 渲染此组件对应的路由`confirm`之前被调用，无法直接使用this")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("beforeRouteUpdate")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("to"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" next")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 路由发生改变，但组件被复用时触发，可以使用this")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("beforeRouteLeave")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("to"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" next")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 导航离开该组件对应的路由时触发，可以使用this")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br")])]),n("h4",{attrs:{id:"完整的导航解析过程"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#完整的导航解析过程"}},[t._v("#")]),t._v(" 完整的导航解析过程")]),t._v(" "),n("ul",[n("li",[t._v("导航被触发。")]),t._v(" "),n("li",[t._v("在失活的组件里调用离开守卫。")]),t._v(" "),n("li",[t._v("调用全局的 beforeEach 守卫。")]),t._v(" "),n("li",[t._v("在重用的组件里调用 beforeRouteUpdate 守卫 (2.2+)。")]),t._v(" "),n("li",[t._v("在路由配置里调用 beforeEnter。")]),t._v(" "),n("li",[t._v("解析异步路由组件。")]),t._v(" "),n("li",[t._v("在被激活的组件里调用 beforeRouteEnter。")]),t._v(" "),n("li",[t._v("调用全局的 beforeResolve 守卫 (2.5+)。")]),t._v(" "),n("li",[t._v("导航被确认。")]),t._v(" "),n("li",[t._v("调用全局的 afterEach 钩子。")]),t._v(" "),n("li",[t._v("触发 DOM 更新。")]),t._v(" "),n("li",[t._v("用创建好的实例调用 beforeRouteEnter 守卫中传给 next 的回调函数。")])]),t._v(" "),n("h3",{attrs:{id:"滚动行为"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#滚动行为"}},[t._v("#")]),t._v(" 滚动行为")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("当我们切换路由的时候，想要滚动到页面的顶部或者保持原有的滚动位置，就像重新加载页面那样。Vue Router可以轻松帮我们实现这个效果。但这个功能只在支持**"),n("code",[t._v("history.pushState")]),t._v("**的浏览器中使用。")])]),t._v(" "),n("h4",{attrs:{id:"滚动到页面顶部"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#滚动到页面顶部"}},[t._v("#")]),t._v(" 滚动到页面顶部")]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" router "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("VueRouter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  routes"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("scrollBehavior")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("to"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" savedPosition")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 滚动到页面顶部")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      x"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      y"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br")])]),n("h4",{attrs:{id:"滚动到前进后退页面原始的位置"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#滚动到前进后退页面原始的位置"}},[t._v("#")]),t._v(" 滚动到前进后退页面原始的位置")]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" router "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("VueRouter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  routes"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("scrollBehavior")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("to"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" savedPosition")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 滚动到前进后退页面原始的位置")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("savedPosition"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" savedPosition\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" x"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br")])]),n("h4",{attrs:{id:"滚动到锚点位置"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#滚动到锚点位置"}},[t._v("#")]),t._v(" 滚动到锚点位置")]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" router "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("VueRouter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  routes"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("scrollBehavior")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("to"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" savedPosition")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 滚动到锚点位置")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("to"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("hash"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        selector"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" to"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("hash\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" \n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br")])]),n("h3",{attrs:{id:"路由懒加载"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#路由懒加载"}},[t._v("#")]),t._v(" 路由懒加载")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("随着项目的体积增大，打包后的包也越来越大，我们希望只有当我们访问某一个路由时，其对应的组件才被加载，这样就更好。要实现这一想法，需要集合Vue的异步组件和webpack代码分隔的功能。")])]),t._v(" "),n("p",[n("strong",[t._v("一个路由懒加载可以如下：")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" router "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("VueRouter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  routes"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" path"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/order'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@/components/order.vue'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" path"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/address'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@/components/address.vue'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" path"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/avatar'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@/components/avatar.vue'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br")])]),n("h2",{attrs:{id:"vuex-状态管理"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vuex-状态管理"}},[t._v("#")]),t._v(" Vuex(状态管理)")]),t._v(" "),n("h3",{attrs:{id:"安装-3"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#安装-3"}},[t._v("#")]),t._v(" 安装")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("使用到Vuex的地方，一般是大型单页项目，这个时候可通过"),n("code",[t._v("npm install")]),t._v("方式进行安装")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[t._v("$ npm install vuex "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("--")]),t._v("save\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br")])]),n("p",[n("strong",[t._v("使用Vuex：")]),t._v(" 在使用"),n("code",[t._v("vue-cli")]),t._v("脚手架初始化项目的情况下，需要在"),n("code",[t._v("main.js")]),t._v("中通过以下方式来使用"),n("code",[t._v("Vuex")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Vue "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'vue'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Vuex "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'vuex'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nVue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("use")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Vuex"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br")])]),n("h3",{attrs:{id:"vuex概念"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vuex概念"}},[t._v("#")]),t._v(" Vuex概念")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("Vuex 是一个专为 Vue.js 应用程序开发的"),n("strong",[t._v("状态管理模式")]),t._v("。它采用"),n("strong",[t._v("集中式存储")]),t._v("管理应用的所有组件的状态，并以相应的规则保证状态以一种可预测的方式发生变化。")])]),t._v(" "),n("p",[n("img",{attrs:{src:a(269),alt:"Vuex"}})]),t._v(" "),n("p",[n("strong",[t._v("什么情况下使用Vuex：")]),t._v(" 由于Vuex的设计思想：采用集中式存储管理应用的所有组件的状态，所以Vuex更适合在中大型项目中大展拳脚，如何只是构建一个小型应用的话，引入Vuex则带来了更多了框架概念，这对于小型应用而言可能并不是一个好的选择。")]),t._v(" "),n("h3",{attrs:{id:"state"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#state"}},[t._v("#")]),t._v(" State")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("store的概念是一个仓库或者容器，它包含了应用中大部分状态（State），与全局对象不同的是：")]),t._v(" "),n("ul",[n("li",[t._v("Vuex的状态存储是响应式的")]),t._v(" "),n("li",[t._v("不能通过直接修改state的方式来更新，而是需要需要显示的提交(commit)")])])]),t._v(" "),n("h4",{attrs:{id:"一个简单的store案例"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#一个简单的store案例"}},[t._v("#")]),t._v(" 一个简单的Store案例")]),t._v(" "),n("p",[n("strong",[t._v("创建store文件夹：")]),t._v(" 在"),n("code",[t._v("src")]),t._v("目录下新建"),n("code",[t._v("store")]),t._v("文件夹")]),t._v(" "),n("div",{staticClass:"language- line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v("$ mkdir store\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br")])]),n("p",[n("strong",[t._v("创建index.js：")]),t._v(" 在"),n("code",[t._v("store")]),t._v("文件夹下新建"),n("code",[t._v("index.js")])]),t._v(" "),n("div",{staticClass:"language- line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v("$ cd store\n$ touch index.js\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Vue "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'vue'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Vuex "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'vuex'")]),t._v("\nVue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("use")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Vuex"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" state "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  count"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  price"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vuex"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Store")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  state\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br")])]),n("p",[n("strong",[t._v("引用store.js：")]),t._v(" 在"),n("code",[t._v("main.js")]),t._v("中引入"),n("code",[t._v("store.js")]),t._v("，使得"),n("code",[t._v("vuex")]),t._v("注入每一个组件中")]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" store "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@/store/index.js'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vue")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  el"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#app'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  store"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  components"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" App "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  template"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'<App/>'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br")])]),n("p",[n("strong",[t._v("在页面中使用state：")])]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("我们通过Vuex提供的"),n("code",[t._v("mapState")]),t._v("辅助方法，来简化我们的代码，这样我们就不用使用"),n("code",[t._v("this.$store.state.count")]),t._v("和"),n("code",[t._v("this.$store.state.price")]),t._v("方式来获取"),n("code",[t._v("state")]),t._v("变量了。"),n("code",[t._v("...")]),t._v("是ES6新的扩展运算符，使用它可以把"),n("code",[t._v("mapState")]),t._v("中的"),n("code",[t._v("state")]),t._v("扩展到组件的计算属性上面去。")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("hello"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  {{count}} - {{price}}\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" mapState "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'vuex'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'HelloWorld'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  computed"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("mapState")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'count'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'price'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br")])]),n("h3",{attrs:{id:"getters"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#getters"}},[t._v("#")]),t._v(" Getters")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("Getter允许我们依赖于已有的"),n("code",[t._v("state")]),t._v("而派生出一些状态来，例如：过滤已完成的todos。Getter有点类似于Vue中的计算属性，只有它依赖的值改变时，它才会重新计算。")])]),t._v(" "),n("p",[n("strong",[t._v("store/index.js代码：")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" state "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  count"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  price"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  todos"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'学习JavaScript'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" done"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'学习HTML'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" done"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'学习CSS'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" done"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'学习Vue'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" done"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'学习Node'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" done"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" getters "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("todoDone")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("state")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("todos"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("filter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("item")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" item"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("done"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vuex"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Store")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  getters\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br")])]),n("p",[n("strong",[t._v("组件代码：")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("hello"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  {{count}} - {{price}}\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-for")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("todo in todoDone"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":key")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("todo.id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("{{todo.name}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" mapState"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" mapGetters "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'vuex'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'HelloWorld'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  computed"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("mapState")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'count'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'price'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("mapGetters")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'todoDone'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br")])]),n("p",[n("img",{attrs:{src:a(270),alt:"Getters结果"}})]),t._v(" "),n("h3",{attrs:{id:"mutations"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#mutations"}},[t._v("#")]),t._v(" Mutations")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("如要要修改Vuex中的State，必须通过提交"),n("code",[t._v("mutation")]),t._v("的方式来进行更改，同时"),n("code",[t._v("mutation")]),t._v("还有如下特点：")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("mutation")]),t._v("是同步事务")]),t._v(" "),n("li",[t._v("可以传递参数")]),t._v(" "),n("li",[t._v("可以用过"),n("code",[t._v("mapMutations")]),t._v("映射到组件的"),n("code",[t._v("methods")]),t._v("方法中")])])]),t._v(" "),n("p",[n("strong",[t._v("store/index.js代码：")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Vue "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'vue'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Vuex "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'vuex'")]),t._v("\nVue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("use")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Vuex"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" state "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  count"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  price"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  todos"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'学习JavaScript'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" done"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'学习HTML'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" done"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'学习CSS'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" done"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'学习Vue'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" done"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'学习Node'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" done"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" getters "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("todoDone")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("state")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("todos"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("filter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("item")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" item"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("done"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" mutations "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" number")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("count "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" number\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("reduce")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("state")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("count"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("--")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vuex"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Store")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  getters"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  mutations\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br"),n("span",{staticClass:"line-number"},[t._v("25")]),n("br"),n("span",{staticClass:"line-number"},[t._v("26")]),n("br"),n("span",{staticClass:"line-number"},[t._v("27")]),n("br"),n("span",{staticClass:"line-number"},[t._v("28")]),n("br"),n("span",{staticClass:"line-number"},[t._v("29")]),n("br"),n("span",{staticClass:"line-number"},[t._v("30")]),n("br"),n("span",{staticClass:"line-number"},[t._v("31")]),n("br"),n("span",{staticClass:"line-number"},[t._v("32")]),n("br"),n("span",{staticClass:"line-number"},[t._v("33")]),n("br")])]),n("p",[n("strong",[t._v("组件代码：")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("hello"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  {{count}} - {{price}}\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleAddClick(2)"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("增加"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleReduceClick"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("减少"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-for")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("todo in todoDone"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":key")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("todo.id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("{{todo.name}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" mapState"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" mapGetters"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" mapMutations "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'vuex'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'HelloWorld'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  computed"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("mapState")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'count'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'price'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("mapGetters")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'todoDone'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  methods"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("mapMutations")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'handleAddClick'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'add'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'handleReduceClick'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'reduce'")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br")])]),n("p",[n("img",{attrs:{src:a(271),alt:"mutation结果"}})]),t._v(" "),n("h3",{attrs:{id:"actions"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#actions"}},[t._v("#")]),t._v(" Actions")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[n("code",[t._v("action")]),t._v("同"),n("code",[t._v("mutations")]),t._v("功能类似，但它们还是有区别的：")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("action")]),t._v("提交的是"),n("code",[t._v("mutation")]),t._v("，而不是直接更改状态")]),t._v(" "),n("li",[n("code",[t._v("action")]),t._v("里面可以写异步代码")])])]),t._v(" "),n("p",[n("strong",[t._v("store/index.js代码：")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" state "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  count"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  price"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  reduceResult"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  todos"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'学习JavaScript'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" done"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'学习HTML'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" done"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'学习CSS'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" done"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'学习Vue'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" done"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'学习Node'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" done"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" getters "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("todoDone")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("state")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("todos"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("filter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("item")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" item"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("done"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" mutations "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" number")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("count "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" number\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("reduce")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("state")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("count"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("--")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("reduceResult")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" flag")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("reduceResult "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" flag\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" actions "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("asyncAdd")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" commit "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" number")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("setTimeout")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("commit")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'add'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" number"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("asyncReduce")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" commit "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Promise")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("resolve"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" reject")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("commit")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'reduce'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("resolve")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("reduceResult")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" commit "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" flag")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("commit")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'reduceResult'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" flag"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vuex"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Store")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  getters"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  mutations"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  actions\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br"),n("span",{staticClass:"line-number"},[t._v("25")]),n("br"),n("span",{staticClass:"line-number"},[t._v("26")]),n("br"),n("span",{staticClass:"line-number"},[t._v("27")]),n("br"),n("span",{staticClass:"line-number"},[t._v("28")]),n("br"),n("span",{staticClass:"line-number"},[t._v("29")]),n("br"),n("span",{staticClass:"line-number"},[t._v("30")]),n("br"),n("span",{staticClass:"line-number"},[t._v("31")]),n("br"),n("span",{staticClass:"line-number"},[t._v("32")]),n("br"),n("span",{staticClass:"line-number"},[t._v("33")]),n("br"),n("span",{staticClass:"line-number"},[t._v("34")]),n("br"),n("span",{staticClass:"line-number"},[t._v("35")]),n("br"),n("span",{staticClass:"line-number"},[t._v("36")]),n("br"),n("span",{staticClass:"line-number"},[t._v("37")]),n("br"),n("span",{staticClass:"line-number"},[t._v("38")]),n("br"),n("span",{staticClass:"line-number"},[t._v("39")]),n("br"),n("span",{staticClass:"line-number"},[t._v("40")]),n("br"),n("span",{staticClass:"line-number"},[t._v("41")]),n("br"),n("span",{staticClass:"line-number"},[t._v("42")]),n("br"),n("span",{staticClass:"line-number"},[t._v("43")]),n("br"),n("span",{staticClass:"line-number"},[t._v("44")]),n("br"),n("span",{staticClass:"line-number"},[t._v("45")]),n("br"),n("span",{staticClass:"line-number"},[t._v("46")]),n("br"),n("span",{staticClass:"line-number"},[t._v("47")]),n("br"),n("span",{staticClass:"line-number"},[t._v("48")]),n("br"),n("span",{staticClass:"line-number"},[t._v("49")]),n("br"),n("span",{staticClass:"line-number"},[t._v("50")]),n("br")])]),n("p",[n("strong",[t._v("组件代码：")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("hello"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  {{count}} - {{price}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("br")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n  异步删减结果：{{reduceResult}}\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleAsyncAdd(2)"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("增加"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleAsyncReduce"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("减少"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("v-for")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("todo in todoDone"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":key")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("todo.id"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("{{todo.name}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" mapState"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" mapGetters"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" mapMutations"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" mapActions "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'vuex'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'HelloWorld'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  computed"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("mapState")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'count'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'price'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'reduceResult'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("mapGetters")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'todoDone'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  methods"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("handleAsyncReduce")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("asyncReduce")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("then")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("flag")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("asyncReduceResult")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("flag"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("mapMutations")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'handleAddClick'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'add'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'handleReduceClick'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'reduce'")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("mapActions")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'handleAsyncAdd'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'asyncAdd'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'asyncReduce'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'asyncReduce'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'asyncReduceResult'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'reduceResult'")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br"),n("span",{staticClass:"line-number"},[t._v("25")]),n("br"),n("span",{staticClass:"line-number"},[t._v("26")]),n("br"),n("span",{staticClass:"line-number"},[t._v("27")]),n("br"),n("span",{staticClass:"line-number"},[t._v("28")]),n("br")])]),n("p",[n("img",{attrs:{src:a(272),alt:"action的结果"}})]),t._v(" "),n("h3",{attrs:{id:"modules"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#modules"}},[t._v("#")]),t._v(" Modules")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),n("p",[t._v("由于使用单一状态树，应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时，store 对象就有可能变得相当臃肿。"),n("br"),t._v("为了解决以上问题，Vuex 允许我们将 store 分割成模块（module）。每个模块拥有自己的 state、mutation、action、getter。")])]),t._v(" "),n("p",[t._v("一个包含"),n("code",[t._v("modules")]),t._v("的Vuex可能如下所示：")]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" moduleA "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  mutations"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  actions"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  getters"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" moduleB "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  mutations"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  actions"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" store "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vuex"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Store")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  modules"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    a"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" moduleA"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    b"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" moduleB\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\nstore"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("a "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// -> moduleA 的状态")]),t._v("\nstore"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("b "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// -> moduleB 的状态")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br")])]),n("p",[n("strong",[t._v("添加store/A.js：")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" state "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  counter"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("11")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  price"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("111")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" mutations "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("state")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("counter"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("++")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("reduce")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("state")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("counter "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" actions "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" commit "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("commit")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'add'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("reduce")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" commit "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("commit")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'reduce'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 开启命名空间能够让模块具有更高的封装度和复用性")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  namespaced"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  mutations"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  actions\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br"),n("span",{staticClass:"line-number"},[t._v("25")]),n("br"),n("span",{staticClass:"line-number"},[t._v("26")]),n("br"),n("span",{staticClass:"line-number"},[t._v("27")]),n("br")])]),n("p",[n("strong",[t._v("添加store/B.js：")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" state "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  counter"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("22")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  price"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("222")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" mutations "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("state")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("counter"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("++")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("reduce")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("state")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("counter "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" actions "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" commit "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("commit")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'add'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("reduce")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" commit "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("commit")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'reduce'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 开启命名空间能够让模块具有更高的封装度和复用性")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  namespaced"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  state"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  mutations"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  actions\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br"),n("span",{staticClass:"line-number"},[t._v("25")]),n("br"),n("span",{staticClass:"line-number"},[t._v("26")]),n("br"),n("span",{staticClass:"line-number"},[t._v("27")]),n("br")])]),n("p",[n("strong",[t._v("index.js代码：")])]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Vue "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'vue'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Vuex "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'vuex'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token constant"}},[t._v("A")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'./a'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token constant"}},[t._v("B")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'./b'")]),t._v("\nVue"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("use")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Vuex"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Vuex"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Store")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  modules"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token constant"}},[t._v("A")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token constant"}},[t._v("B")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br")])]),n("p",[n("strong",[t._v("组件代码：")])]),t._v(" "),n("div",{staticClass:"language-html line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-html"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("A模块的内容"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  数量："),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("span")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("{{ACounter}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("span")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  价格："),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("span")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("{{APrice}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("span")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleAModuleAdd"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("增加"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleAModuleReduce"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("减少"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("B模块的内容"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("p")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  数量："),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("span")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("{{BCounter}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("span")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  价格："),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("span")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("{{BPrice}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("span")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleBModuleAdd"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("增加"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("button")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("handleBModuleReduce"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("减少"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("button")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br")])]),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" mapState"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" mapActions "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'vuex'")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n  name"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'HelloWorld'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("data")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  computed"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 第一个参数代表模块的名字")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("mapState")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'A'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'ACounter'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'counter'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'APrice'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'price'")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("mapState")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'B'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'BCounter'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'counter'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'BPrice'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'price'")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n  methods"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 第一个参数代表模块的名字")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("mapActions")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'A'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'handleAModuleAdd'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'add'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'handleAModuleReduce'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'reduce'")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("mapActions")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'B'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'handleBModuleAdd'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'add'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n      "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'handleBModuleReduce'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'reduce'")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n  "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br"),n("span",{staticClass:"line-number"},[t._v("25")]),n("br"),n("span",{staticClass:"line-number"},[t._v("26")]),n("br"),n("span",{staticClass:"line-number"},[t._v("27")]),n("br"),n("span",{staticClass:"line-number"},[t._v("28")]),n("br"),n("span",{staticClass:"line-number"},[t._v("29")]),n("br"),n("span",{staticClass:"line-number"},[t._v("30")]),n("br")])]),n("p",[n("img",{attrs:{src:a(273),alt:"Module结果"}})]),t._v(" "),n("h3",{attrs:{id:"推荐目录结构"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#推荐目录结构"}},[t._v("#")]),t._v(" 推荐目录结构")]),t._v(" "),n("div",{staticClass:"language- line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v("├── index.html\n├── main.js\n├── api\n│   └── ... # 抽取出API请求\n├── components\n│   ├── App.vue\n│   └── ... # 其他组件\n└── store\n    ├── index.js          # 我们组装模块并导出 store 的地方\n    ├── actions.js        # 根级别的 action\n    ├── mutations.js      # 根级别的 mutation\n    └── modules\n        ├── XXX.js       # XXX模块\n        └── XXX.js       # XXX模块\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br")])]),n("h2",{attrs:{id:"vue原理"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vue原理"}},[t._v("#")]),t._v(" Vue原理")]),t._v(" "),n("h3",{attrs:{id:"vue原理剖析"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vue原理剖析"}},[t._v("#")]),t._v(" Vue原理剖析")]),t._v(" "),n("p",[t._v("关于Vue相关原理剖析，请跳转至"),n("router-link",{attrs:{to:"/vue/principle.html"}},[t._v("Vue原理剖析")]),t._v("阅读更多。")],1)])}),[],!1,null,null,null);s.default=e.exports}}]);