{"id":545,"date":"2020-03-01T15:57:52","date_gmt":"2020-03-01T07:57:52","guid":{"rendered":"https:\/\/blog.cqdefxxx.com\/?p=545"},"modified":"2020-03-01T15:57:52","modified_gmt":"2020-03-01T07:57:52","slug":"vue-%e8%bf%87%e6%b8%a1%e6%95%88%e6%9e%9c","status":"publish","type":"post","link":"https:\/\/blog.viter.top\/index.php\/2020\/03\/01\/vue-%e8%bf%87%e6%b8%a1%e6%95%88%e6%9e%9c\/","title":{"rendered":"Vue-\u8fc7\u6e21\u6548\u679c"},"content":{"rendered":"<h1>1.\u8fc7\u6e21<\/h1>\n<pre class=\"pure-highlightjs\"><code class=\"\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;meta charset=\"utf-8\"&gt;\n&lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\"&gt;\n&lt;title&gt;Examples&lt;\/title&gt;\n&lt;meta name=\"description\" content=\"\"&gt;\n&lt;meta name=\"keywords\" content=\"\"&gt;\n&lt;link href=\"\" rel=\"stylesheet\"&gt;\n&lt;style&gt;\n\n  .kerwinfade-enter-active, .kerwinfade-leave-active {\n    transition: all 1.5s;\n  }\n  .kerwinfade-enter, .kerwinfade-leave-to \/* .fade-leave-active below version 2.1.8 *\/ {\n    opacity: 0;\n    transform: translateX(100px);\n  }\n\n\n  .bounce-enter-active {\n    animation: bounce-in .5s;\n  }\n  .bounce-leave-active {\n    animation: bounce-in .5s reverse;\n  }\n  @keyframes bounce-in {\n    0% {\n      opacity: 0;\n      transform: translateX(100px);\n    }\n\n    100% {\n      opacity: 1;\n      transform: translateX(0px);\n    }\n  }\n\n&lt;\/style&gt;\n&lt;link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/animate.css\/3.7.0\/animate.min.css\" rel=\"stylesheet\" type=\"text\/css\"&gt;\n\n&lt;script type=\"text\/javascript\" src=\"lib\/vue.js\"&gt;&lt;\/script&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n\n    &lt;!-- &lt;h1 class=\"animated heartBeat infinite \"&gt;1111111111111&lt;\/h1&gt; --&gt;\n\n    &lt;div id=\"box\"&gt;\n        &lt;button @click=\"isShow= !isShow\"&gt;click&lt;\/button&gt;\n\n        &lt;transition name=\"kerwinfade\"&gt;\n            &lt;p v-show=\"isShow\"&gt;11111111111111111&lt;\/p&gt;\n        &lt;\/transition&gt;\n\n\n        &lt;transition name=\"bounce\"&gt;\n            &lt;p v-show=\"isShow\"&gt;2222222222222&lt;\/p&gt;\n        &lt;\/transition&gt;\n\n\n        &lt;transition enter-active-class=\"animated bounceInRight\" leave-active-class=\"animated bounceOutRight\"&gt;\n            &lt;p v-show=\"isShow\"&gt;33333333333333333&lt;\/p&gt;\n        &lt;\/transition&gt;\n    &lt;\/div&gt;\n\n    &lt;script&gt;\n      var vm = new Vue({\n        el:\"#box\",\n        data:{\n          isShow:true\n        }\n      })\n\n\n      \/\/obox1.addEventListern(\"transitionEnd\")\n      \/\/obox2.addEventListern(\"animationEnd\")\n    &lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>&nbsp;<\/p>\n<h1>2.\u521d\u59cb\u5143\u7d20\u8fc7\u6e21<\/h1>\n<pre class=\"pure-highlightjs\"><code class=\"\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;meta charset=\"utf-8\"&gt;\n&lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\"&gt;\n&lt;title&gt;Examples&lt;\/title&gt;\n&lt;meta name=\"description\" content=\"\"&gt;\n&lt;meta name=\"keywords\" content=\"\"&gt;\n&lt;link href=\"\" rel=\"stylesheet\"&gt;\n&lt;style&gt;\n  .kerwin-enter-active, .kerwin-leave-active {\n    transition: all .5s\n  }\n  .kerwin-enter, .kerwin-leave-to \/* .fade-leave-active in below version 2.1.8 *\/ {\n    opacity: 0;\n    transform: translateX(100px);\n  }\n\n\n\n   .bounce-enter-active {\n    animation: bounce-in .5s;\n  }\n  .bounce-leave-active {\n    animation: bounce-in .5s reverse;\n  }\n  @keyframes bounce-in {\n    \n    0%{\n      transform: translateX(100px);\n      opacity: 0;\n    }\n\n    100%{\n      transform: translateX(0px);\n      opacity: 1;\n    }\n  }\n&lt;\/style&gt;\n&lt;link href=\"https:\/\/cdn.jsdelivr.net\/npm\/animate.css@3.5.1\" rel=\"stylesheet\" type=\"text\/css\"&gt;\n\n&lt;script type=\"text\/javascript\" src=\"lib\/vue.js\"&gt;&lt;\/script&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n\n\n    &lt;!-- &lt;div class=\"animated  hinge infinite\"&gt;1111111111111&lt;\/div&gt; --&gt;\n    &lt;div id=\"box\"&gt;\n        &lt;button @click=\"isShow= !isShow\"&gt;click&lt;\/button&gt;\n\n        &lt;transition name=\"bounce\" appear&gt;\n          &lt;p v-show=\"isShow\"&gt;11111111111&lt;\/p&gt;\n\n        &lt;\/transition&gt;\n\n    &lt;\/div&gt;\n\n    &lt;script&gt;\n      var vm = new Vue({\n        el:\"#box\",\n        data:{\n          isShow:true\n        }\n      })\n\n    &lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>&nbsp;<\/p>\n<h1>3.\u591a\u4e2a\u5143\u7d20\u8fc7\u6e21<\/h1>\n<pre class=\"pure-highlightjs\"><code class=\"\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;meta charset=\"utf-8\"&gt;\n&lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\"&gt;\n&lt;title&gt;Examples&lt;\/title&gt;\n&lt;meta name=\"description\" content=\"\"&gt;\n&lt;meta name=\"keywords\" content=\"\"&gt;\n&lt;link href=\"\" rel=\"stylesheet\"&gt;\n&lt;style&gt;\n  \n.bounce-enter-active {\n  animation: bounce-in .5s;\n}\n.bounce-leave-active {\n  animation: bounce-in .5s reverse;\n}\n@keyframes bounce-in {\n  0% {\n    transform: translateX(100px);\n    opacity: 0;\n  }\n  \n  100% {\n    transform: translateX(0px);\n    opacity: 1;\n  }\n}\n&lt;\/style&gt;\n&lt;link href=\"https:\/\/cdn.jsdelivr.net\/npm\/animate.css@3.5.1\" rel=\"stylesheet\" type=\"text\/css\"&gt;\n\n&lt;script type=\"text\/javascript\" src=\"lib\/vue.js\"&gt;&lt;\/script&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n\n\n    &lt;!-- &lt;div class=\"animated  hinge infinite\"&gt;1111111111111&lt;\/div&gt; --&gt;\n    &lt;div id=\"box\"&gt;\n        &lt;button @click=\"isShow= !isShow\"&gt;click&lt;\/button&gt;\n\n        &lt;transition name=\"bounce\" mode=\"out-in\"&gt;\n          &lt;div v-if=\"isShow\" key=\"1\"&gt;111111&lt;\/div&gt;\n          &lt;div v-else key=\"2\"&gt;222222&lt;\/div&gt;\n        &lt;\/transition&gt;\n    &lt;\/div&gt;\n\n    &lt;script&gt;\n      var vm = new Vue({\n        el:\"#box\",\n        data:{\n          isShow:true\n        }\n      })\n\n\n\n      \/\/ {\n      \/\/   tag:\"div\",\n      \/\/   text:\"111111\"\n      \/\/ }\n\n\n      \/\/ {\n      \/\/   tag:\"p\",\n      \/\/   text:\"222222\"\n      \/\/ }\n\n\n      \/* Vue \u4e3a\u4e86\u51cf\u5c11\u5bf9\u4e8edom \u7684\u64cd\u4f5c\n\n        (1)  key \u76ee\u7684\uff1a\u4e3a\u4e86\u91cd\u7528\n\n            key\u503c\u76f8\u540c\uff0c \u5c31\u91cd\u7528\n            key\u503c\u4e0d\u540c\uff0c\u5c31\u4e0d\u91cd\u7528\n\n        (2)  v-if v-else \u5982\u679c\u6807\u7b7e\u76f8\u540c\uff0c\u5c31\u91cd\u7528,\u5982\u679c\u6807\u7b7e\u4e0d\u540c\uff0c \u5c31\u4e0d\u91cd\u7528\n       *\/\n\n    &lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>&nbsp;<\/p>\n<h1>4.\u591a\u4e2a\u7ec4\u4ef6\u8fc7\u6e21<\/h1>\n<pre class=\"pure-highlightjs\"><code class=\"\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;meta charset=\"utf-8\"&gt;\n&lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\"&gt;\n&lt;title&gt;Examples&lt;\/title&gt;\n&lt;meta name=\"description\" content=\"\"&gt;\n&lt;meta name=\"keywords\" content=\"\"&gt;\n&lt;link href=\"\" rel=\"stylesheet\"&gt;\n&lt;style type=\"text\/css\"&gt;\n  \n    *{\n      margin: 0px;\n      padding: 0px;\n    }\n\n    html,body{\n      width: 100%;\n      height: 100%;\n      overflow-x: hidden;\n    }\n   footer ul {\n    display: flex;\n    position: fixed;\n    left: 0px;\n    bottom: 0px;\n    width: 100%;\n    height: 40px;\n   }\n\n   footer ul li {\n    flex: 1;\n    text-align: center;\n    list-style: none;\n    height: 40px;\n    line-height: 40px;\n    background: gray;\n   }\n\n\n   .bounce-enter-active {\n     animation: bounce-in .5s;\n   }\n   .bounce-leave-active {\n     animation: bounce-in .5s reverse;\n   }\n   @keyframes bounce-in {\n     0% {\n       transform: translateX(100px);\n       opacity: 0;\n     }\n     \n     100% {\n       transform: translateX(0px);\n       opacity: 1;\n     }\n   }\n&lt;\/style&gt;\n&lt;script type=\"text\/javascript\" src=\"lib\/vue.js\"&gt;&lt;\/script&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;div id=\"box\"&gt;\n       &lt;keep-alive&gt;\n        &lt;transition name=\"bounce\" mode=\"out-in\"&gt;\n         &lt;component :is=\"who\"&gt;&lt;\/component&gt;\n        &lt;\/transition&gt;\n       &lt;\/keep-alive&gt;\n       &lt;footer&gt;\n         &lt;ul&gt;\n           &lt;li&gt;&lt;a @click=\"who='home'\"&gt;\u9996\u9875&lt;\/a&gt;&lt;\/li&gt;\n           &lt;li&gt;&lt;a @click=\"who='list'\" &gt;\u5217\u8868\u9875&lt;\/a&gt;&lt;\/li&gt;\n           &lt;li&gt;&lt;a @click=\"who='shopcar'\"&gt;\u8d2d\u7269\u8f66\u9875\u9762&lt;\/a&gt;&lt;\/li&gt;\n         &lt;\/ul&gt;\n       &lt;\/footer&gt;\n    &lt;\/div&gt;\n   \n\n    &lt;script type=\"text\/javascript\"&gt;\n      \/\/babel-loader  ES6=&gt;ES5\n    \n\n      var home= {\n        template:`&lt;div&gt;\n          home\n          &lt;input type=\"text\"\/&gt;\n        &lt;\/div&gt;`\n      }\n\n      var list= {\n        template:`&lt;div&gt;\n          list\n        &lt;\/div&gt;`\n      }\n\n      var shopcar= {\n        template:`&lt;div&gt;\n          shopcar\n        &lt;\/div&gt;`\n      }\n\n\n      var vm = new Vue({\n        el:\"#box\",\n        data:{\n            \/\/ isHomeShow:true,\n            \/\/ isListShow:false,\n            \/\/ isShopcarShow:false\n            who:\"home\"\n        },\n        components:{\n          home, \n          list,\n          shopcar\n        }\n      })\n\n    &lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>&nbsp;<\/p>\n<h1>5.\u591a\u4e2a\u5217\u8868\u8fc7\u6e21<\/h1>\n<pre class=\"pure-highlightjs\"><code class=\"\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;meta charset=\"utf-8\"&gt;\n&lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\"&gt;\n&lt;title&gt;Examples&lt;\/title&gt;\n&lt;meta name=\"description\" content=\"\"&gt;\n&lt;meta name=\"keywords\" content=\"\"&gt;\n&lt;link href=\"\" rel=\"stylesheet\"&gt;\n&lt;script type=\"text\/javascript\" src=\"lib\/vue.js\"&gt;&lt;\/script&gt;\n\n&lt;style&gt;\n  .bounce-enter-active {\n    animation: bounce-in .5s;\n  }\n  .bounce-leave-active {\n    animation: bounce-in .5s reverse;\n  }\n  @keyframes bounce-in {\n    0% {\n      transform: translateX(100px);\n      opacity: 0;\n    }\n    \n    100% {\n      transform: translateX(0px);\n      opacity: 1;\n    }\n  }\n&lt;\/style&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;div id=\"box\"&gt;\n       &lt;input type=\"text\" v-model=\"mytext\"\/&gt;\n       &lt;button @click=\"handleClick()\"&gt;add&lt;\/button&gt; \n\n       &lt;!-- &lt;ul&gt; --&gt;\n        &lt;transition-group tag=\"ul\" name=\"bounce\"&gt;\n          &lt;li v-for=\"item,index in datalist\" :key=\"item\"&gt;\n            {{item}}--&lt;button @click=\"handleDelClick(index)\"&gt;del&lt;\/button&gt;\n          &lt;\/li&gt;\n        &lt;\/transition-group&gt;  \n       &lt;!-- &lt;\/ul&gt; --&gt;\n    &lt;\/div&gt;\n\n    &lt;script type=\"text\/javascript\"&gt;\n        var vm = new Vue({\n           el:\"#box\",\n           data:{\n            mytext:\"1111\",\n            datalist:[]\n           },\n\n           methods:{\n            handleClick:function(){\n\n              this.datalist.push(this.mytext);\n            },\n\n            handleDelClick(index){\n              console.log(\"del-click\",index)\n\n              this.datalist.splice(index,1);\/\/\u5220\u9664\n            }\n           }\n        })\n\n        \/\/ \u65b0\u8001\u865a\u62dfdom\u5bf9\u6bd4\u7684 \u65f6\u5019 \u4f1a \u4f7f\u7528 diff \u7b97\u6cd5\u3002\n        \/\/ \n        \/\/ \n\n        \/\/ \n        \/\/    li -1111-  1111\n        \/\/    li -2222-  2222\n        \/\/    li- 3333- 3333\n        \/\/    \n        \/\/    \n        \/\/    li -1111-  1111\n        \/\/    li -33333- 3333\n    &lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>&nbsp;<\/p>\n<h1>6.\u53ef\u590d\u7528\u8fc7\u6e21<\/h1>\n<pre class=\"pure-highlightjs\"><code class=\"\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;meta charset=\"utf-8\"&gt;\n&lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\"&gt;\n&lt;title&gt;Examples&lt;\/title&gt;\n&lt;meta name=\"description\" content=\"\"&gt;\n&lt;meta name=\"keywords\" content=\"\"&gt;\n&lt;link href=\"\" rel=\"stylesheet\"&gt;\n\n&lt;style&gt;\n  .bounce-enter-active {\n    animation: bounce-in .5s;\n  }\n  .bounce-leave-active {\n    animation: bounce-in .5s reverse;\n  }\n  @keyframes bounce-in {\n    0% {\n      transform: translateX(-100%);\n      opacity: 0;\n    }\n    \n    100% {\n      transform: translateX(0px);\n      opacity: 1;\n    }\n  }\n&lt;\/style&gt;\n&lt;script type=\"text\/javascript\" src=\"lib\/vue.js\"&gt;&lt;\/script&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;div id=\"box\"&gt;\n        &lt;navbar @myevent=\"control\"&gt;&lt;\/navbar&gt;\n       \n        &lt;sidebar v-show=\"isShow\"&gt;&lt;\/sidebar&gt;\n        \n    &lt;\/div&gt;\n   \n   \n\n    &lt;script type=\"text\/javascript\"&gt;\n        \/\/\u5b50\u7ec4\u4ef6\n       Vue.component(\"navbar\",{\n        template:`&lt;div&gt;\n\n          navbar--&lt;button @click=\"handleClick\"&gt;show\/hide&lt;\/button&gt;\n        &lt;\/div&gt;`,\n\n        methods:{\n          handleClick(){\n            this.$emit(\"myevent\");\n          }\n        }\n       })\n\n\n       Vue.component(\"sidebar\",{\n        template:`\n         &lt;transition name=\"bounce\"&gt;\n        &lt;div style=\"background:black;color:white;width:300px;\"&gt;\n\n          sidebar\n          &lt;ul&gt;\n            &lt;li&gt;1111&lt;\/li&gt;\n            &lt;li&gt;1111&lt;\/li&gt;\n            &lt;li&gt;1111&lt;\/li&gt;\n            &lt;li&gt;1111&lt;\/li&gt;\n            &lt;li&gt;1111&lt;\/li&gt;\n            &lt;li&gt;1111&lt;\/li&gt;\n            &lt;li&gt;1111&lt;\/li&gt;\n          &lt;\/ul&gt;\n        &lt;\/div&gt;\n        &lt;\/transition&gt;\n        `\n       })\n\n       \n        var vm = new Vue({\n          el:\"#box\",\n          data:{\n            isShow:false\n          },\n          methods:{\n            control(){\n              this.isShow = !this.isShow;\n            }\n          }\n        })\n      \n\n    &lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<h1>\u603b\u7ed3\uff1a<\/h1>\n<pre class=\"pure-highlightjs\"><code class=\"\"><strong>transition\u8fc7\u6e21<\/strong>\n   Vue \u5728\u63d2\u5165\u3001\u66f4\u65b0\u6216\u8005\u79fb\u9664 DOM \u65f6\uff0c\u63d0\u4f9b\u591a\u79cd\u4e0d\u540c\u65b9\u5f0f\u7684\u5e94\u7528\u8fc7\u6e21\u6548\u679c\u3002\n      (1)\u5355\u5143\u7d20\/\u7ec4\u4ef6\u8fc7\u6e21\n          * css\u8fc7\u6e21\n          * css\u52a8\u753b\n          * \u7ed3\u5408animate.css\u52a8\u753b\u5e93\n      (2) \u591a\u4e2a\u5143\u7d20\u8fc7\u6e21(\u8bbe\u7f6ekey)\n          mode:in-out ; out-in\n      (3)\u591a\u4e2a\u7ec4\u4ef6\u8fc7\u6e21\n      (4)\u5217\u8868\u8fc7\u6e21(\u8bbe\u7f6ekey)\n          *&lt;transition-group&gt;\u4e0d\u540c\u4e8e transition\uff0c \u5b83\u4f1a\u4ee5\u4e00\u4e2a\u771f\u5b9e\u5143\u7d20\u5448\u73b0\uff1a\u9ed8\u8ba4\u4e3a\u4e00\u4e2a &lt;span&gt;\u3002\u4f60\u4e5f\u53ef\u4ee5\u901a\u8fc7\ntag \u7279\u6027\u66f4\u6362\u4e3a\u5176\u4ed6\u5143\u7d20\u3002\n          * \u63d0\u4f9b\u552f\u4e00\u7684 key \u5c5e\u6027\u503c<\/code><\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1.\u8fc7\u6e21 &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta cha &#8230;<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[],"tags":[9,10],"_links":{"self":[{"href":"https:\/\/blog.viter.top\/index.php\/wp-json\/wp\/v2\/posts\/545"}],"collection":[{"href":"https:\/\/blog.viter.top\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.viter.top\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.viter.top\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.viter.top\/index.php\/wp-json\/wp\/v2\/comments?post=545"}],"version-history":[{"count":0,"href":"https:\/\/blog.viter.top\/index.php\/wp-json\/wp\/v2\/posts\/545\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.viter.top\/index.php\/wp-json\/wp\/v2\/media?parent=545"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.viter.top\/index.php\/wp-json\/wp\/v2\/categories?post=545"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.viter.top\/index.php\/wp-json\/wp\/v2\/tags?post=545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}