一个学习vue的例子

[复制链接]
 楼主| keer_zu 发表于 2020-12-25 18:39 | 显示全部楼层 |阅读模式
  1. <template>
  2.   <div class="hello">
  3.     <h1>{{ msg }}</h1>
  4.     <label for="r1">下载后删除</label><input type="checkbox" v-model="use" id="r1">
  5.     <div v-bind:class="{'class1': use}">
  6.       <h1>site : {{site}}</h1>
  7.     </div>
  8.     <h1>url : {{url}}</h1>
  9.     <h1>Alexa : {{book}}</h1>
  10.     <div id="app">
  11.       {{5+5}}<br>
  12.       {{ ok ? 'YES' : 'NO' }}<br>
  13.       {{ message.split('').reverse().join('') }}
  14.       <div v-bind:id="'list-' + id">菜鸟教程</div>
  15.     </div>
  16.     <div id="app">
  17.       <p v-if="seen">现在你看到我了</p>
  18.     </div>
  19.     <p id="demo">这是一个段落</p>
  20.     <button id="demo" type="button" onclick="document.getElementById('demo').innerHTML=Date()">显示日期</button>
  21.     <pre><a v-bind:href="url">edgexfoundry社区</a></pre>
  22.     <a v-on:click="doSomething">点这里</a>
  23.     <form v-on:submit.prevent="onSubmit"></form>
  24.     <p>{{ message }}</p>
  25.     <button v-on:click= "reverseMessage" >反转字符串</button>
  26.     <template v-if="ok">
  27.       <h1>学些东西</h1>
  28.       <p>学的不仅是技术,更是梦想!</p>
  29.       <p>哈哈哈,打字辛苦啊!!!</p>
  30.       <li v-for= "site in sites" :key="site.id">
  31.         {{ site.name }}
  32.       </li>
  33.     </template>
  34.     <div v-if="Math.random() > 0.5">
  35.       Sorry
  36.     </div>
  37.     <div v-else>
  38.       Not sorry
  39.     </div>
  40.     <ul>
  41.       <li v-for="value in meizhou" :key="value.id">
  42.         {{ value }}
  43.       </li>
  44.       <br>
  45.       <br>
  46.       <li v-for="(value, key, index) in object" :key="value.id">
  47.         {{ index }}. {{ key }} : {{ value }}
  48.       </li>
  49.       <li v-for="(value, key) in meizhou" :key="value.id">
  50.         {{ key }} : {{ value }}
  51.       </li>
  52.     </ul>
  53.     <p>原始字符串: {{ message }}</p>
  54.     <p>计算后反转字符串: {{ reversedMessage1 }}</p>
  55.       千米 : <input type = "text" v-model = "kilometers">
  56.       米 : <input type = "text" v-model = "meters">
  57.     <p id="info"></p>
  58.   </div>
  59. </template>

  60. <style>
  61. .class1{
  62.   background: #444;
  63.   color: #eee;
  64. }
  65. </style>

  66. <script type="text/javascript">
  67.   import Vue from 'vue'
  68.   var data = {site: '菜鸟教程', url: 'www.runoob.com', alexa: 10000}
  69.   var vm = new Vue({
  70.     el: '#hello',
  71.     data: data
  72.   })

  73.   export default {
  74.     name: 'hello',
  75.     data () {
  76.       return {
  77.         site: '菜鸟教程',
  78.         msg: '圣诞节快乐!',
  79.         url: 'https://edgexfoundry.club/',
  80.         book: 'turing',
  81.         use: false,
  82.         ok: true,
  83.         message: 'RUNOOB',
  84.         id: 1,
  85.         seen: true,
  86.         sites: [
  87.           { name: 'Runoob' },
  88.           { name: 'Google' },
  89.           { name: 'Taobao' }
  90.         ],
  91.         meizhou: {
  92.           name: '厄瓜多尔',
  93.           url: 'http://www.runoob.com',
  94.           slogan: '乌拉圭!'
  95.         },
  96.         kilometers: 0,
  97.         meters: 0
  98.       }
  99.     },
  100.     methods: {
  101.         reverseMessage: function () {
  102.             this.message = this.message.split('').reverse().join('')
  103.         }
  104.     },
  105.     computed: {
  106.     // 计算属性的 getter
  107.         reversedMessage1: function () {
  108.       // `this` 指向 vm 实例
  109.             return this.message.split('').reverse().join('')
  110.         }
  111.     },
  112.     watch: {
  113.         kilometers: function (val) {
  114.             // document.getElementById('info').innerHTML = '修改前值为: ' + this.kilometers + ',修改后值为: ' + val
  115.             this.kilometers = val
  116.             this.meters = this.kilometers * 1000
  117.         },
  118.         meters: function (val) {
  119.             // document.getElementById('info').innerHTML = '修改前值为: ' + this.kilometers + ',修改后值为: ' + val / 1000
  120.             this.kilometers = val / 1000
  121.             this.meters = val
  122.         }
  123.     }
  124.   }
  125.   document.write(data.alexa === 10000)
  126.   vm.site = 'Runoob'
  127.   document.write(data.site + '<br>') // Runoob
  128.   document.write(vm.$data === data) // true
  129.   document.write('<br>')
  130.   document.write(vm.$el === document.getElementById('hello'))
  131. // ……反之亦然
  132.   data.alexa = 1234
  133.   document.write(vm.alexa) // 1234
  134. </script>


 楼主| keer_zu 发表于 2020-12-28 14:06 | 显示全部楼层
vue.输入字符并反转显示:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
  6. <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
  7. </head>
  8. <body>
  9. <div id="app">
  10.   <textarea placeholder="请输入记录评语..." v-model="message">
  11.   </textarea>
  12.         <p>{{content}}</p>
  13.   <p>原始字符串: {{ message }}</p>
  14.   <p>计算后反转字符串: {{ reversedMessage }}</p>
  15.   <p>使用方法后反转字符串: {{ reversedMessage2 }}</p>
  16. </div>

  17. <script>
  18. var vm = new Vue({
  19.   el: '#app',
  20.   data: {
  21.           content: '',
  22.     message: 'Runoob!'
  23.   },
  24.   computed: {
  25.     // 计算属性的 getter
  26.     reversedMessage: function () {
  27.       // `this` 指向 vm 实例
  28.       return this.message.split('').reverse().join('')
  29.     }
  30.   },
  31.   methods: {
  32.     reversedMessage2: function () {
  33.       return this.message.split('').reverse().join('')
  34.     }
  35.   }
  36. })
  37. </script>
  38. </body>
  39. </html>


您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群:49734243 Email:zukeqiang@gmail.com

1478

主题

12917

帖子

55

粉丝
快速回复 在线客服 返回列表 返回顶部