一、helloworld

  1. <div id="app">
  2. {{msg}}
  3. <p v-for="item of arr">{{item}}</p>
  4. </div>
  5. <script>
  6. var vm = new Vue({
  7. el:"#app",
  8. data:{
  9. msg:"hello world",
  10. arr:[1,2,3]
  11. }
  12. }).$mount("#app")
  13. </script>

二、for-key

  1. <div id="app">
  2. <!-- key 元素的标识符,遍历数据渲染 -->
  3. <p v-for="(item,index) of arr" :key="item.id"><input type="checkbox"/>{{item.name}}{{index}}</p>
  4. </div>
  5. <script>
  6. var vm = new Vue({
  7. el:"#app",
  8. data(){
  9. return {
  10. arr:[
  11. {id:001,name:"晓星尘"},
  12. {id:002,name:"宋子琛"},
  13. {id:003,name:"薛洋"},
  14. ]
  15. }
  16. }
  17. })
  18. </script>

三、v-if

  1. <!-- v-if v-show v-html-->
  2. <div id="app">
  3. <p v-if="flag">显示隐藏</p>
  4. <p v-show="isShow">显示隐藏</p>
  5. <div v-html="msg"></div>
  6. </div>
  7. <script>
  8. var vm = new Vue({
  9. el:"#app",
  10. data(){
  11. return{
  12. flag:true,
  13. isShow:true,
  14. msg:"<h1>hello world</h1>"
  15. }
  16. }
  17. })
  18. </script>

四、input

  1. <!-- v-model 可以实现双向数据绑定
  2. @keyup.enter 可以触发enter-->
  3. <div id="app">
  4. <input type="text" v-model="keyword" @keyup.enter="handleUp">
  5. {{keyword}}
  6. </div>
  7. <script>
  8. var vm = new Vue({
  9. el:"#app",
  10. data(){
  11. return{
  12. keyword:"成都"
  13. }
  14. },
  15. methods: {
  16. handleUp(e){
  17. console.log(this.keyword)
  18. }
  19. }
  20. })
  21. </script>

五、watch

  1. <div id="app">
  2. {{total}}
  3. </div>
  4. <script>
  5. var vm = new Vue({
  6. el:"#app",
  7. data(){
  8. return{
  9. firstName:1,
  10. lastName:2,
  11. total:3
  12. }
  13. },
  14. /* 监听data中的值,只要值改变,函数就会触发 */
  15. watch: {
  16. firstName(){
  17. this.total = this.firstName + this.lastName
  18. },
  19. lastName(){
  20. this.total = this.firstName + this.lastName
  21. }
  22. },
  23. })
  24. </script>

六、class

  1. <div id="app">
  2. <p :class="{active:isActive}">hello world</p>
  3. <p :class='["one",flag?"two":""]'></p>
  4. </div>
  5. <script>
  6. var vm = new Vue({
  7. el:"#app",
  8. data(){
  9. return{
  10. isActive:true,
  11. flag:true
  12. }
  13. }
  14. })
  15. </script>

七、方法

  1. <div id="app">
  2. <p>{{msg}}</p>
  3. <button @click="hanldeClick">toggle</button>
  4. </div>
  5. <script>
  6. var app = new Vue({
  7. el:"#app",
  8. data(){
  9. return{
  10. msg:"hello world"
  11. }
  12. },
  13. methods: {
  14. hanldeClick(){
  15. this.msg = "good"
  16. }
  17. },
  18. })
  19. </script>

八、计算属性

  1. <div id="app">
  2. {{total}}
  3. </div>
  4. <script>
  5. var vm = new Vue({
  6. el:"#app",
  7. data(){
  8. return{
  9. firstName:"zhang",
  10. lastName:"san"
  11. }
  12. },
  13. /* 当参与计算的值发生改变时,总值会改变 */
  14. computed: {
  15. total(){
  16. return this.firstName + this.lastName
  17. }
  18. },
  19. })
  20. </script>

九、toduList

  1. <div id="app">
  2. <div>
  3. 姓名:<input type="text" v-model="name">
  4. 年龄:<input type="text" v-model="age">
  5. <button @click="handleAdd">添加</button>
  6. </div>
  7. <div>
  8. <p v-for="item of arr">{{item.name}}:{{item.age}}<button @click="handleDet(item.name)">删除</button></p>
  9. </div>
  10. </div>
  11. <script>
  12. new Vue({
  13. el:"#app",
  14. data(){
  15. return {
  16. arr:[
  17. {name:"yang",age:18}
  18. ],
  19. name:"",
  20. age:""
  21. }
  22. },
  23. methods: {
  24. handleAdd(){
  25. if(this.name && this.age){
  26. this.arr.push({
  27. name:this.name,
  28. age:this.age
  29. })
  30. this.name="";
  31. this.age=""
  32. }
  33. },
  34. handleDet(name){
  35. var index = this.arr.findIndex(item>=item.name == name)
  36. console.log(index)
  37. }
  38. },
  39. })
  40. </script>