【自己的整理】Vue入门使用

为什么要用vue

写这篇博客的时间,2018年4月20日。我们为什么要用vue
前端框架层出不穷的今天,选择一个较为主流同时能让自己事半功倍的框架是必不可少的,同时vue作为三大主流框架之一发展迅速,如果还没有选择好用哪个框架,那不如稍微考虑一下,只要选定一个 好好做下去就好了,即便是选angular或者react都是一样的,他们都是非常不错的前端框架。
对于前端框架的调查
在这想吐槽一下,angular1 用过的人但是不想再用的人站点比例有点多啊,而vue没用过但是想用的人占比蛮多的。三大前端框架之王React已经占据榜首好久了,希望vue这匹黑马接下来能把angular拉下马。。。。拉下马什么鬼-。-

最基本的使用

vue文件的远程引用

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.min.js"></script>

上面两个都能使用,而且速度也不错

例子1

基本的数据绑定,创建一个vue的模块并在这个模块的显示元素中绑定数据,当内存中该模块数据发生变化的时候,视图中会“即时” 更新变化
html:

    <h4>app1数据绑定</h4>
    <div id="app">{{ message }}</div><!--angular的数据绑定也用的大括号-->

js:

var app = new Vue({
    el:"#app",
    data:{
        message:"Fuck Q vue!"
    }
}); 

然后窗口就会出现:
vue我爱你
鉴于知乎(啊呸划掉)csdn博客图片放多了审核太慢,下面的例子都不放图了

例子2绑定元素特性

vue不单单可以绑定元素的内容,也能够绑定元素的属性
html:

    <h4>app2属性绑定</h4>
    <div id="app-2">
        <span v-bind:title="message">
        鼠标悬停几秒钟查看此处动态绑定的提示信息!
        </span>
    </div>

js:

var app2 = new Vue({
    el: '#app-2',
    data: {
        message: '页面加载于 ' + new Date().toLocaleString()
    }
})

当鼠标移动到这段文字的时候,会出现“页面家在于多少多少时间”的信息
v-bind 特性被称为指令 bind是捆绑、缠绕(A.A)的意思。而v是vue的缩写,就是这个属性被vue能够认的出来,并且和message捆绑缠绕在一起了。这样的话 我就想到了既然可以绑定属性,那么就能通过改变属性的方式制作动画。改变显示,或者其他复杂的东西
比如我们稍稍改一下 html的app2这个模块的部分
html:

    <h4>app2属性绑定</h4>
    <div id="app-2">
        <span v-bind:title="message" v-bind:style="style">
        鼠标悬停几秒钟查看此处动态绑定的提示信息!
        </span>
    </div>

js部分也增加一个:

var app2 = new Vue({
    el: '#app-2',
    data: {
        message: '页面加载于 ' + new Date().toLocaleString(),
        style:"color:red;"
    }
})

这样可以直接更改app2里面的字的颜色了

例子3显示隐藏 条件开关

html:

    <h4>app3显示隐藏(条件)</h4>
    <div id="app-3">
        <p v-if="seen">现在你看到我了</p>
    </div>

js:

    var app3 = new Vue({
      el: '#app-3',
      data: {
        seen: true
      }
    })

这个例子好像,,没啥变化 因为是控制是否出现的,如果在控制台输入:

app3.seen = false;

那么就看不见“现在你看到我了”。

例子4循环

用于通过同样的窗口展现很多数据的时候。可以使用这个方式。减少前端代码同时更为简洁
html:

<div id="app-4">
  <ol>
    <li v-for="todo in todos">
      {{ todo.text }}
    </li>
  </ol>
</div>

js:

var app4 = new Vue({
  el: '#app-4',
  data: {
    todos: [
      { text: '我爱兔子' },
      { text: '我爱吃兔子' },
      { text: '吃你的头啊!' }
    ]
  }
})

真正显示的页面有3个li

例5绑定事件

html:

<h4>app5添加监听事件</h4>
    <div id="app-5">
      <p>{{ message }}</p>
      <button v-on:click="reverseMessage">逆转消息</button>
    </div>

js:

var app5 = new Vue({
      el: '#app-5',
      data: {
        message: 'Hello Vue.js!'
      },
      methods: {
        reverseMessage: function () {
          this.message = this.message.split('').reverse().join('')
        }
      }
    })

上述例子中,添加了了一个点击事件会触发函数reverseMessage(一个翻转字符串的函数)点击按钮之后,显示的message消息会翻转

例6 数据双向绑定

在默认情况下 vue的数据是单向的,是从控制层到显示层,但是可以通过设置的方式让数据双向绑定,控制同时显示
html:

<h4>app6表单应用与数据双向绑定</h4>
    <div id="app-6">
      <p>{{ message }}</p>
      <input v-model="message">
    </div>

js:

var app6 = new Vue({
  el: '#app-6',
      data: {
        message: 'Hello Vue!'
      }
    })
    Vue.component('todo-item', {
      props: ['todo'],
      template: '<li>{{ todo.text }}</li>'
    })

上面的模块中。如果输入栏里的数据发生了变化,那么内存中相应的数据以及表现层中的数据也会随之改变

例子7创建组件

html:

<div id="app-7">
  <ol>
    <todo-item
      v-for="item in groceryList"
      v-bind:todo="item"
      v-bind:key="item.id">
    </todo-item>
  </ol>
</div>

js:

var app7 = new Vue({
  el: '#app-7',
  data: {
    groceryList: [
      { id: 0, text: '蔬菜' },
      { id: 1, text: '奶酪' },
      { id: 2, text: '随便其它什么人吃的东西' }
    ]
  }
})

组件要有可复用的性质,并且可以在不同的地方出现,有着同样的展示效果。这里的例子还只是一个较为初级的应用(其实是我自己还搞不太懂-。-)
如果您觉得这篇博客好的话请点赞评论喔,评论自己也能得到分数哦!

猜你喜欢

转载自blog.csdn.net/towrabbit/article/details/80023301