Vue2学习笔记

简介: Vue2学习笔记

如果用Visual的话安装如下三个插件(Vetur vue Vue3 Snippets)

数据绑定:例如 input 单行输入标签标签,单项数据绑定v-bind,数据只能从data流入页面

多项数据绑定v-model,数据双向流动,针对表单

M V VM 模型

M:Model:代表data里面的数据

V:View:代表div里面的数据

VM:Vue:Vue实例,里面包括data

小知识:定时器setTimeout(()=>{需要定时的事件},定时多长时间)

data也可以写成函数,用返回值的方式来表达里面的内容(数据内容)

事件绑定: @click=“方法名” 绑定事件中可传递参数:@click=“show1(参数)”

{{中也可以加方法}}

绑定class样式需要在class前面加一个冒号,带有冒号的class是去Vue里面找(Vue里引入样式的名字,适用类名不确定),不带冒号的是在样式里找

v-show 条件展示,就是控制是否显示 v-if v-else 也能实现

v-for历,遍历数组:


遍历对象:<li v-for="(item,index) in arr">{{value}}</li>


列表渲染列表过滤(按照条件筛选)

例如:(冬 伦 周) 还可以按照年龄升序

马冬梅-19-女

周冬雨-20-女

周杰伦-21-男

温兆伦-22-男

    <input type="text" v-model="keyWord" placeholder="请输入姓名"/>
    <button type="button" @click="sortType = 1">年龄升序⬆</button>
    <button type="button" @click="sortType = 2">年龄降序⬇</button>
    <button type="button" @click="sortType = 0">原顺序</button>
    <button >更改马冬梅信息</button>
    <ul>
      <li v-for="(p,infex) in fmtper" :key="p.id">
        {{p.name}}--{{p.sex}}--{{p.age}}岁
      </li>
    </ul>
  </div>
  <script type="text/javascript">
    const vm = new Vue({
      el: '#apk',
      data: {
        keyWord:'',
        sortType:0,
        persons:[
          {id:'001',name:'马冬梅',age:'35',sex:'女'},
          {id:'002',name:'周冬雨',age:'20',sex:'女'},
          {id:'003',name:'周杰伦',age:'41',sex:'男'},
          {id:'004',name:'温兆伦',age:'25',sex:'男'},
        ],
      },
      computed:{
        fmtper(){
          const {persons,keyWord,sortType} = this
          //根据关键词过滤
          let arr = persons.filter( p => p.name.indexOf(keyWord) !== -1)
          //若需要排序
          if(sortType){
            //排序
            arr.sort((a,b)=>{
              if(sortType == 1) return a.age - b.age
              else return b.age - a.age
            })
          }
          return arr
        }
      }
    })
  </script>


input如果是text那么v-model收集的是value的值

input如果是radio那么v-model收集的是value的值

input如果是checkbox那么v-model(数组)收集的是value的值!!没设置value的话是布尔值

<div id="apk">
      <form @submit.prevent="submit">
        账号:<input type="text" v-model="userInfo.account"/><br/>
        密码:<input type="password" v-model="userInfo.password"/><br>
        性别:男<input type="radio" name="sex" v-model="userInfo.sex" value="男"/>
           女<input type="radio" name="sex" v-model="userInfo.sex" value="女"/><br>
        爱好:抽烟<input type="checkbox" v-model="userInfo.hobby" value="抽烟"/>
        喝酒<input type="checkbox" v-model="userInfo.hobby" value="饮酒"/>
        烫头<input type="checkbox" v-model="userInfo.hobby" value="烫头"/><br>
        所属校区:<select v-model="userInfo.city">
          <option value ="">请选择校区</option>
          <option value ="beijing">北京</option>
          <option value ="wuhan">武汉</option>
          <option value ="shanghai">上海</option>
          <option value ="shenzhen">深圳</option>
        </select><br>
        其他校区:<textarea rows="10" cols="30" v-model="userInfo.other"></textarea><br>
        <input type="checkbox" v-model="userInfo.agree"/>阅读并接收<a href="http://www.baidu.com">《用户协议》</a><br>
        <button type="button" @click="submit">提交</button>
      </form>
    </div>
    <script type="text/javascript">
      const vm = new Vue({
        el: '#apk',
        data: {
          userInfo:{
            account:'',
            password:'',
            sex:'',
            hobby:[],
            city:'',
            other:'',
            agree:false,
          }
        },
        methods:{
          submit(){
            console.log(this.userInfo)
          }
        }
      })
    </script>




相关文章
|
6月前
|
索引
第10节:Vue3 论点
第10节:Vue3 论点
31 0
|
6月前
|
缓存 JavaScript 前端开发
Vue3带来了什么
Vue3带来了什么
67 0
|
JavaScript API UED
vue3(二)
vue3(二)
92 0
|
3月前
|
JavaScript
Vue——initInjections【九】
Vue——initInjections【九】
32 1
|
6月前
|
JavaScript 前端开发 开发者
new Vue() 发生了什么
new Vue() 发生了什么
37 1
|
6月前
|
缓存 JavaScript 前端开发
Vue 3中toRaw和markRaw的使用
Vue 3中toRaw和markRaw的使用
120 0
|
6月前
|
JavaScript 前端开发 API
vue3没有this怎么办?
vue3没有this怎么办?
250 1
|
JavaScript 前端开发 API
vue3介绍
vue3介绍
315 0
|
JavaScript API
Vue 3.0中的Treeshaking?
Vue 3.0中的Treeshaking?
110 0
|
JavaScript
vue为什么避免v-if和v-for一起使用?
vue为什么避免v-if和v-for一起使用?