<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 頁面組件化 就是把一個整體的頁面,切割成一個一個的部分.一個部分就稱作一個組件.合理的拆分組件,可以把一個大型的項目拆分成小份,和拼積木一樣. ## 不使用組件化的todolist ``` <div id="app"> <input type="text" v-model="inputValue"> <input type="button" value="提交" @click="submit"> <ul> <li v-for="value of lists">{{value}}</li> </ul> </div> <script> var vm = new Vue({ el: '#app', data: { lists: ['第一課的內容', '第二課的內容'], inputValue: '' }, methods: { submit() { if (this.inputValue === '') { return; } this.lists.push(this.inputValue); this.inputValue = ''; } } }) ``` ## 全局組件 ``` <div id="app"> <input type="text" v-model="inputValue"> <input type="button" value="提交" @click="submit"> <ul> <todo-item v-bind:content="item" v-for="item of lists"></todo-item> //通過v-bind父組件向子組件傳值 </ul> </div> <script> //全局的組件 Vue.component('TodoItem', { props: ['content'], template: '<li>{{this.content}}</li>', }); var vm = new Vue({ el: '#app', data: { lists: ['第一課的內容', '第二課的內容'], inputValue: '' }, methods: { submit() { if (this.inputValue === '') { return; } this.lists.push(this.inputValue); this.inputValue = ''; } } }) </script> ``` ## 局部的組件 ``` <div id="app"> <input type="text" v-model="inputValue"> <input type="button" value="提交" @click="submit"> <ul> <todo-item v-bind:content="item" v-for="item of lists"></todo-item> </ul> </div> <script> var TodoItem = { props:['content'], template: '<li>{{this.content}}</li>', }; var vm = new Vue({ el: '#app', components:{ TodoItem:TodoItem, //注冊要vue實例中 }, data: { lists: ['第一課的內容', '第二課的內容'], inputValue: '' }, methods: { submit() { if (this.inputValue === '') { return; } this.lists.push(this.inputValue); this.inputValue = ''; } } }) </script> ``` ## 子組件向父組件傳值 ``` <div id="app"> <input type="text" v-model="inputValue"> <input type="button" value="提交" @click="submit"> <ul> <todo-item v-bind:content="item" v-bind:index="index" v-for="item,index of lists" @delete="handleItemDelete"></todo-item> </ul> </div> <script> var TodoItem = { props: ['content', 'index'], template: '<li @click="handleItemClick">{{this.content}}</li>', methods: { handleItemClick() { this.$emit('delete', this.index); //子組件向外粗發一個delete的事件 } } }; var vm = new Vue({ el: '#app', components: { TodoItem: TodoItem, //注冊要vue實例中 }, data: { lists: ['第一的內容', '第二的內容'], inputValue: '' }, methods: { submit() { if (this.inputValue === '') { return; } this.lists.push(this.inputValue); this.inputValue = ''; }, handleItemDelete(index) { this.lists.splice(index, 1); } } }) </script> ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看