VUE值、表单操作语法

值操作语法

Mustache 胡须语法

双大括号引用vue变量中的变量值
message可能是data中的值也可能是计算属性方法
{ {message}} 单取值
{ {message+message}} 运算
{ {message}} { {message}} 多个变量取值

v-once

加了v-once属性的标签,数据改变不会刷新dom,停止响应式

<div id='app-7'>
    <a href="" v-once>{
   
   {message}}</a>
    <a href="">{
   
   {message}}</a>
</div>

v-for 遍历数据

html

 <div id="app-3">
        <h1>3.列表例子</h1>
        vue列表对象.data.list.push();可以向数组中添加数据
        vue列表对象.data.list.shift(2);可以移除指定的数据,不传参默认删除最后一个
        <ol>
            <li v-for="item in list">
                {
   
   {item}}
            </li>
            <li v-for="item in list1">
                姓名:{
   
   {item.name}}&nbsp;&nbsp;&nbsp;&nbsp;年龄:{
   
   {item.age}}
            </li>
        </ol>
    </div>

vue


 var app3 = new Vue({
        el:"#app-3",
        data:{
            list:["刘","关","张","赵","黄"],
            list1:[
                {'name':"name-1","age":12},
                {'name':"name-2","age":13},
                {'name':"name-3","age":14},
                {'name':"name-4","age":15},
            ]
        }
    })

v-html 直接当作html加载进入

html

  <div id='app-8'>
        <h1>8.直接当作html加载进入</h1>
        <p v-html="url"></p>
    </div>

vue

var app8 = new Vue({
        el:'#app-8',
        data:{
            url:'<a href="http://www.baidu.com">百度一下</a>
        }
    })

v-pre 不经过编译直接添加进入dom节点

html

<div id='app-9'>
        <h1>9.不经过编译直接添加进入dom节点</h1>
        <p v-pre>{
   
   {url}}</p>
    </div>

p标签会直接显示{ {url}},不会显示vue中的data值

v-cloak 斗篷

vue未执行绑定的js则不显示该dom节点。防止html加载了vue逻辑还未执行导致界面有延迟

 <div id='app-10'>
        <h1>10.</h1>
        <p v-cloak>{
   
   {meaasge}}</p>
    </div>

动态绑定语法

再vuedom(也叫做模板)或对象中如果出现集合或者数组,key会被当为对象如果不是对象则当作字符串而value会被当成对象只有加’'才可以被当作字符串
例如:

 <li :class="[item.name,'app12-list']"></li>

v-bind 绑定vue值和属性

v-bind:title 可以使用语法糖 :title

 <div id="app-1">
        <h1>2.鼠标悬停title</h1>
        <span :title="message">
            鼠标悬停查看绑定的内容
        </span>
    </div>

动态绑定并切换class

html
也可以在methods中写方法,将json返回,但使用变量的时候需要加this

<div id='app-11'>
        <h1>11.动态绑定并切换class</h1>
        <p v-bind:class="{a:isRed,b:isGreen}">{
   
   {message}}</p>
    </div>

vue

var app11 = new Vue({
        el:'#app-11',
        data:{
            isRed:false,
            isGreen:false,
            message:"文本内容"
        }
    })
    setTimeout(function(){
        app11.isRed = true;
    },2000)
    setTimeout(function(){
        app11.isRed = false;
        app11.isGreen = true;
    },4000)

v-on用法

html
注释部分也可以根据名称直接调用vue对象methods中的方法

<div id="app-5">
        <h1>5.计数器</h1>
        click中可以输入直接运行的代码,但是复杂情况不建议这样写,逻辑很容易被忽略也不美观
        <p v-html=number></p>
        <button v-on:click="number++">
       <!-- <button v-on:click="app5Click"> -->
            +
        </button>
        <button v-on:click="number--">
            -
        </button>
    </div>

vue

 var app5 = new Vue({
        el:"#app-5",
        data:{
            number:0
        },
        methods:{
            app5Click:function(){
                this.number+=2
            }
        }
    })

生成列表并且点击切换颜色

html

 <div id='app-12'>
        <h1>12.列表点击换颜色</h1>
        <ul>
            <li :class="[item.name,'app12-list']" v-for="(item,index) in items" v-on:click="changeColor(index)">{
   
   {item.name}}</li>
        </ul>
    </div>

vue

var app12 = new Vue({
        el:'#app-12',
        data:{
            items:[
                {'name':"name-1","age":12},
                {'name':"name-2","age":13},
                {'name':"name-3","age":14},
                {'name':"name-4","age":15},
            ]
        },
        methods:{
            changeColor:function(index){
                var list = document.getElementsByClassName("app12-list");
                for (let index = 0; index < list.length; index++) {
                    const element = list[index];
                    element.style.color='black';
                }
                const element = document.getElementsByClassName(this._data.items[index].name);
                element[0].style.color='red';
            }
        }
    })

v-model

text

将input和vuedata中的message绑定,这是双向绑定input输入值修改也会同步修改vue data中的message的值

radio button

如果是单选框则v-model对应值 例如 message:“男”

check box

如果是多选框则v-model对应数组 例如message:[‘男’,‘变性’]

select

如果是多选框则v-model对应数组 例如message:[‘香蕉’,‘橘子’]

github 例子地址

https://github.com/1142235090/study_vue

猜你喜欢

转载自blog.csdn.net/zhaohan___/article/details/109724227
今日推荐