Vue.js 实战教程 V2.x(3)第一个Vue.js程序

mac2022-06-30  71

 

假设你已了解关于 HTML、CSS 和 JavaScript 的知识。   3.1起步 创建一个 .html 文件,然后通过如下方式引入 Vue:   <script src=" https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>   3.2声明式渲染 Vue.js核心:   <div id="app">     {{ message }}   </div>   var app = new Vue({     el: '#app',     data: {       message: 'Hello Vue!'     }   })   绑定元素:   <div id="app-2">     <span v-bind:title="message">       鼠标悬停几秒钟查看此处动态绑定的提示信息!     </span>   </div>   var app2 = new Vue({     el: '#app-2',     data: {       message: '页面加载于 ' + new Date().toLocaleString()     }   })   3.3条件与循环 控制切换一个元素是否显示:   <div id="app-3">     <p v-if="seen">现在你看到我了</p>   </div>   var app3 = new Vue({     el: '#app-3',     data: {       seen: true     }   })   v-for 指令可以绑定数组的数据来渲染一个项目列表:   <div id="app-4">     <ol>       <li v-for="todo in todos">         {{ todo.text }}       </li>     </ol>   </div>   var app4 = new Vue({     el: '#app-4',     data: {       todos: [         { text: '学习 HTML' },         { text: '学习 CSS ' },         { text: '学习 JavaScript' }       ]     }   })   3.4处理用户输入 用 v-on 指令添加一个事件监听器:   <div id="app-5">     <p>{{ message }}</p>     <button v-on:click="reverseMessage">反转消息</button>   </div>   var app5 = new Vue({     el: '#app-5',     data: {       message: 'Hello Vue.js!'     },     methods: {       reverseMessage: function () {         this.message = this.message.split('').reverse().join('')       }     }   })   用v-model 指令实现表单输入和应用状态之间的双向绑定:   <div id="app-6">     <p>{{ message }}</p>     <input v-model="message">   </div>   var app6 = new Vue({     el: '#app-6',     data: {       message: 'Hello Vue!'     }   })   3.5组件化应用构建 组件系统允许我们使用小型、独立和通常可复用的组件构建大型应用:         在 Vue 中注册组件:   // 定义名为 todo-item 的新组件   Vue.component('todo-item', {     template: '<li>这是个待办项</li>'   })   用它构建另一个组件模板:   <ol>     <!-- 创建一个 todo-item 组件的实例 -->     <todo-item></todo-item>   </ol>   修改一下组件的定义,使之能够接受一个 prop:   Vue.component('todo-item', {     // todo-item 组件现在接受一个     // "prop",类似于一个自定义特性。     // 这个 prop 名为 todo。     props: ['todo'],     template: '<li>{{ todo.text }}</li>'   })   使用 v-bind 指令将待办项传到循环输出的每个组件中:   <div id="app-7">     <ol>       <!--         现在我们为每个 todo-item 提供 todo 对象         todo 对象是变量,即其内容可以是动态的。         我们也需要为每个组件提供一个“key”,稍后再         作详细解释。       -->       <todo-item         v-for="item in groceryList"         v-bind:todo="item"         v-bind:key="item.id"       ></todo-item>     </ol>   </div>   Vue.component('todo-item', {     props: ['todo'],     template: '<li>{{ todo.text }}</li>'   })   var app7 = new Vue({     el: '#app-7',     data: {       groceryList: [         { id: 0, text: '蔬菜' },         { id: 1, text: '奶酪' },         { id: 2, text: '随便其它' }       ]     }   })   组件的应用模板:   <div id="app">     <app-nav></app-nav>     <app-view>       <app-sidebar></app-sidebar>       <app-content></app-content>     </app-view>   </div>   完整代码:   <!DOCTYPE html>   <html>   <head>      <title>My first Vue app</title>      <script src=" https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>   </head>   <body> <div id="app">      {{ message }}   </div> <div id="app-2">      <span v-bind:title="message">        鼠标悬停几秒钟查看此处动态绑定的提示信息!      </span>   </div>   <div id="app-3">      <p v-if="seen">现在你看到我了</p>   </div> <div id="app-4">      <ol>          <li v-for="todo in todos">              {{ todo.text }}          </li>      </ol>   </div>   <div id="app-5">      <p>{{ message }}</p>      <button v-on:click="reverseMessage">反转消息</button>   </div>   <div id="app-6">      <p>{{ message }}</p>      <input v-model="message">   </div> <div id="app-7">   <ol>       <!-- 创建一个 todo-item 组件的实例 -->      <todo-item     v-for="item in groceryList"            v-bind:todo="item"            v-bind:key="item.id"     ></todo-item>     </ol>   </div>     <script>      var app = new Vue({          el: '#app',          data: {              message: 'Hello Vue!'          }      }) var app2 = new Vue({      el: '#app-2',      data: {          message: '页面加载于 ' + new Date().toLocaleString()      }   })   var app3 = new Vue({      el: '#app-3',      data: {          seen: true      }   })   var app4 = new Vue({      el: '#app-4',      data: {          todos: [              { text: '学习 HTML' },              { text: '学习 CSS ' },             { text: '学习 JavaScript' }          ]      }   })   var app5 = new Vue({      el: '#app-5',      data: {          message: 'Hello Vue.js!'      },      methods: {          reverseMessage: function () {              this.message = this.message.split('').reverse().join('')          }      }   })   var app6 = new Vue({      el: '#app-6',      data: {          message: 'Hello Vue!'      }   }) // 定义名为 todo-item 的新组件   Vue.component('todo-item', {      props: ['todo'],     template: '<li>{{ todo.text }}</li>'   })   var app7 = new Vue({      el: '#app-7',      data: {       groceryList: [              { id: 0, text: '蔬菜' },              { id: 1, text: '奶酪' },              { id: 2, text: '随便其它' }          ]      }   })     </script>     </body>   </html> 欢迎观看视频教程:https://ke.qq.com/course/432961?tuin=36914f34,如有疑问,请加QQ群665714453交流讨论。  

转载于:https://www.cnblogs.com/daqiang123/p/11368374.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)