[关闭]
@yuanzhimeng 2018-12-25T07:11:38.000000Z 字数 3663 阅读 485

Vue 基础

Vue


数据渲染

绑定石渲染数据

  1. <div id="demo">
  2. {{ message }}
  3. </div>
  1. var demo = new Vue({
  2. el: "#demo",
  3. data: {
  4. message: "数据渲染"
  5. }
  6. });

列表渲染 v-for

  1. <div class="container">
  2. <div class="col-md-4">
  3. <div id="demo">
  4. <ul class="list-group">
  5. <li v-for="job in jobs" class="list-group-item">{{ job }}</li>
  6. </ul>
  7. </div>
  8. </div>
  9. </div>
  1. <div class="container">
  2. <div class="col-md-4">
  3. <div id="demo">
  4. <ul class="list-group">
  5. <li v-for="(job, key) in jobs" class="list-group-item">{{ job }}</li>
  6. </ul>
  7. </div>
  8. </div>
  9. </div>
  1. var demo = new Vue({
  2. el: "#demo",
  3. data: {
  4. jobs: [
  5. "9:00 编写开发文档",
  6. "10:00 技术部开会",
  7. "11:00 点外卖(美团打折)"
  8. ]
  9. }
  10. });

条件渲染

  1. <div v-if="type === 'A'">
  2. A
  3. </div>
  1. <div v-if="type === 'A'">
  2. A
  3. </div>
  4. <div v-else>
  5. Not A
  6. </div>
  1. <div v-if="type === 'A'">
  2. A
  3. </div>
  4. <div v-else-if="type === 'B'">
  5. B
  6. </div>
  7. <div v-else-if="type === 'C'">
  8. C
  9. </div>
  10. <div v-else>
  11. Not A/B/C
  12. </div>
  1. <button class="btn btn-primary" v-show="show">true</button>

v-if和v-show区别

表单输入绑定

文本输入绑定

文本输入框绑定值到字符串

  1. <div id="demo">
  2. <input type="" v-model="inputText" name=""/>
  3. <span>
  4. {{ inputText }}
  5. </span>
  6. </div>
  1. var demo = new Vue({
  2. el: '#demo',
  3. data: {
  4. inputText: '初始化值'
  5. }
  6. });

单个复选框

单个复选框绑定值到布尔型

  1. <div id="demo">
  2. <input type="checkbox" v-model="isSelect" name=""/>同意
  3. <span>
  4. {{ isSelect }}
  5. </span>
  6. </div>
  1. var demo = new Vue({
  2. el: '#demo',
  3. data: {
  4. isSelect: true
  5. }
  6. });

多个复选框

多个复选框绑定值到数组

  1. <div id="demo">
  2. <p><input type="checkbox" value="条款1" v-model="dataArray" name=""/>条款1</p>
  3. <p><input type="checkbox" value="条款2" v-model="dataArray" name=""/>条款2</p>
  4. <p><input type="checkbox" value="条款3" v-model="dataArray" name=""/>条款3</p>
  5. <p><input type="checkbox" value="条款4" v-model="dataArray" name=""/>条款4</p>
  6. <span>
  7. {{ dataArray }}
  8. </span>
  9. </div>
  1. var demo = new Vue({
  2. el: '#demo',
  3. data: {
  4. dataArray: []
  5. }
  6. });

单选按钮

单选按钮绑定值到字符串

  1. <div id="demo">
  2. <p><input type="radio" value="男" v-model="dataRadio" name=""/></p>
  3. <p><input type="radio" value="女" v-model="dataRadio" name=""/></p>
  4. <p><input type="radio" value="保密" v-model="dataRadio" name=""/>保密</p>
  5. <span>
  6. {{ dataRadio }}
  7. </span>
  8. </div>
  1. var demo = new Vue({
  2. el: '#demo',
  3. data: {
  4. dataRadio: '男'
  5. }
  6. });

选择框(单选)

单选选择框绑定值到字符串

  1. <div id="demo">
  2. <select v-model="dataSelect">
  3. <option value="0">请选择数字</option>
  4. <option value="1">1</option>
  5. <option value="2">2</option>
  6. <option value="3">3</option>
  7. <option value="4">4</option>
  8. <option value="5">5</option>
  9. </select>
  10. <span>
  11. {{ dataSelect }}
  12. </span>
  13. </div>
  1. var demo = new Vue({
  2. el: '#demo',
  3. data: {
  4. dataSelect: '3'
  5. }
  6. });

选择框(多选)

多选选择框绑定值到数组

  1. <div id="demo">
  2. <select v-model="dataSelectArray" multiple="multiple">
  3. <option value="0">请选择数字</option>
  4. <option value="1">1</option>
  5. <option value="2">2</option>
  6. <option value="3">3</option>
  7. <option value="4">4</option>
  8. <option value="5">5</option>
  9. </select>
  10. <span>
  11. {{ dataSelectArray }}
  12. </span>
  13. </div>
  1. var demo = new Vue({
  2. var demo = new Vue({
  3. el: '#demo',
  4. data: {
  5. dataSelectArray: [3]
  6. }
  7. });

修改数据

内部修改数据(函数)

外部修改数据(js代码)

事件

函数

methods 对象中定义函数

  1. var demo = new Vue({
  2. el: '#demo',
  3. data: {
  4. sex: '女'
  5. },
  6. methods: {
  7. demoClick: function () {
  8. console.log(this.sex);
  9. }
  10. }
  11. });

监听事件

HTML 支持的事件列表

通过 v-on:事件名 来监听事件

  1. <div id="demo">
  2. <button v-on:click="demoClick">按钮</button>
  3. </div>

绑定函数到事件

通过 v-on:事件名="函数名" 同过监听事件调用函数

  1. <div id="demo">
  2. <button v-on:click="demoClick">按钮</button>
  3. </div>
  1. <div id="demo">
  2. <button v-on:click="demoClick(1)">按钮</button>
  3. </div>

注: 可以传递多个参数, 具体个数一函数定义时形参个数为准

组件

定义组件

  1. Vue.component('button-counter', {
  2. data: function () {
  3. return {
  4. count: 0
  5. }
  6. },
  7. template: '<button v-on:click="count++">You clicked me {{ count }} times.</button>'
  8. });

使用组件

  1. <div id="demo">
  2. <button-counter></button-counter>
  3. </div>
  1. new Vue({
  2. el: '#demo'
  3. });
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注