vue基础语法

1、v-text插文本值:

<span v-text="msg"></span>
<!-- 和下面的一样 -->
<span>{{msg}}</span>

2、Html插值 v-html(会解析html内容)

<script src="js/vue.js"></script>
<body>
    <div id="app">
        <span v-text="addr"></span>
        <span v-html="addr"></span>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            data: {
                addr: "<h1>凤城二路</h1>"
            },
        })
    </script>
</body>
</html>

3、v-bind属性插值:(动态绑定数据,可以简写为:)(title标签属性作用:鼠标指上显示相应的内容)

<script src="js/vue.js"></script>
<body>
    <div id="app">
        <span v-bind:title="info">tom</span>
        <!-- 简化写法 -->
        <span :title="info">tom</span>
    </div>

    <script>
         var vm = new Vue({
            el: "#app",
            data: {
                info: "hello tom"
            }
        })
    </script>
</body>

</html>

<script src="js/vue.js"></script>

<body>
    <div id="app">
        <div :class="{'class1':use}"></div>
    </div>

    <script>
        var vm = new Vue({
            el: "#app",
            data: {
                use: false
            }
        })
    </script>
    <style >
        .class1 {
            width: 200px;
            height: 100px;
            background-color: blueviolet;
        }
    </style>
</body>

</html>

4、V-on:事件(可以简写为@事件)

<script src="js/vue.js"></script>

<body>
    <div id="app">
        <button v-on:click="show()">点击我看看</button>
        <!-- 简写形式 -->
        <button @click="show1()">点击我看看</button>     
    </div>
    <script>        
        var vm = new Vue({
            el: "#app",
            data: {
            },
            methods: {
                show:function(){
                    alert("hello tom");
                },
                show1(){
                    alert("hello tomm");
                }
            },
        })
    </script>
</body>

 

<script src="js/vue.js"></script>
<body>
    <div id="app">    
           <!--此处使用vue默认的事件对象作为实参进行传递-->
        <button @click="show2($event,1,2,3)">点击我看看</button>
    </div>
    <script>        
        var vm = new Vue({
            el: "#app",
            data: {
            },
            methods: {               
                show2(event,a,b,c){
                    alert(event.target.tagName)
                    console.log(a);
                }
            },
        })
    </script>
</body>

 .once:设置事件只能触发一次,比如按钮的点击等。

 <button @click.once="show1()">点击我看看</button>

.stop:阻止冒泡(通俗讲就是阻止事件向上级DOM元素传递)

<script src="js/vue.js"></script>
<body>
    <div id="app">
        <div class="class1" @click="show">
            <div class="class2" @click.stop="show2"></div>
        </div>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            data: {
            },
            methods: {
                show(){
                    alert("one");
                },
                show2(){
                    alert("two");
                }
            },

        })
    </script>
    <style>
        .class1{
            background-color:red;width: 200px;height: 200px;
        }
        .class2{
            background-color:rgb(47, 0, 255);width: 100px;height: 100px;
        }
    </style>
</body>

. self:将事件绑定到自身,只有自身才能触发,通常用于避免冒泡事件的影响

<div class="class1" @click.self="show">
      <div class="class2" @click="show2"></div>
</div>

.prevent:阻止默认事件的发生

默认事件指对DOM的操作会引起自动执行的动作,比如点击超链接的时候会进行页面的跳转,点击表单提交按钮时会重新加载页面等,使用".prevent"修饰符可以阻止这些事件的发生。

<div id="app">
    <a href="https://www.baidu.com" @click.prevent="show">去百度</a>
</div>

5、样式绑定,样式绑定可以通过class属性和style属性实现动态绑定,class比较常用

使用:class

<script src="js/vue.js"></script>

<body>
    <div id="app">
        <div :class="{'myclass':isshow}"></div>
        <button @click="show">{{msg}}</button>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            data: {
                msg: "显示",
                isshow: false
            },
            methods: {
                show() {
                    this.isshow = this.isshow ? false : true;
                    this.msg = this.msg == "显示" ? "隐藏" : "显示";
                }
            },
        })
    </script>
    <style lang='less'>
        .myclass {
            background-color: blueviolet;
            width: 200px;
            height: 200px;
        }
    </style>
</body>

</html>

6、V-if

根据表达式的值的来有条件地渲染元素。在切换时元素及它的数据绑定 / 组件被销毁并重建。

<script src="js/vue.js"></script>/。
<body>rd0ol.
    <div id="app">
        <div>考试成绩:{{num}}</div>
        <div v-if="num>=90">
        优秀
        </div>
        <div v-else-if="num>=80">
        良
        </div>
        <div v-else-if="num>=70">
        中等
        </div>
        <div v-else-if="num>=60">
        及格
        </div>
        <div v-else>
        不及格
        </div>
    </div>
    <script type="text/javascript">
        var vm = new Vue({
            el: '#app',
            data: {
                num: Math.round(Math.random()*100)               
            }
        })
    </script>
</body>

7、V-SHOW

用于根据条件展示元素的选项是 v-show 指令。用法和v-if大致一样:

<h1 v-show="ok">Hello!</h1>

v-if 和 v-show 区别:

  • v-if 是动态添加,当值为false 时,是完全移除该元素,即 dom 树中不存在该元素。

  • v-show 仅是隐藏 / 显示,值为 false 时,该元素依旧存在于 dom 树中。若其原有样式设置了 display: none 则会导致其无法正常显示。

  • <template> 存在于未被 vue 实例化的组件中时可以正常隐藏,天生 display:none

8、V-for

<script src="js/vue.js"></script>

<body>

    <div id="app">
        <table>
            <thead>
                <tr>
                    <th>Name</th>
                    <th>Age</th>
                    <th>Sex</th>
                </tr>
            </thead>
            <tbody>
                <tr v-for="person in people">
                    <td>{{ person.name  }}</td>
                    <td>{{ person.age  }}</td>
                    <td>{{ person.sex  }}</td>
                </tr>
            </tbody>
        </table>
    </div>

    <script>
        var vm = new Vue({
			el: '#app',
			data: {
				people: [{
					name: 'Jack',
					age: 30,
					sex: 'Male'
				}, {
					name: 'Bill',
					age: 26,
					sex: 'Male'
				}, {
					name: 'Tracy',
					age: 22,
					sex: 'Female'
				}, {
					name: 'Chris',
					age: 36,
					sex: 'Male'
				}]
			}
		})
    </script>
<script src="js/vue.js"></script>

<body>
    <div id="app">
        <select>
            <option v-for="(dept, index) in list" :key="index" :value="dept.deptId">{{dept.deptName}}</option>
        </select>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            data: {
                list: [{
                        deptId: 10,
                        deptName: "人事部"
                    },
                    {
                        deptId: 20,
                        deptName: "研发部"
                    },
                    {
                        deptId: 30,
                        deptName: "销售部"
                    },
                ]
            }
        })
    </script>
</body>

</html>

9、V-model

可以用 v-model 指令在表单 <input><textarea><select> 元素上创建双向数据绑定。

<script src="js/vue.js"></script>
<body>

    <div id="app">
        <p>{{ message }}</p>
        <input v-model="message">
    </div>

    <script>
        new Vue({
            el: '#app',
            data: {
                message: 'tom'
            }
        })
    </script>

</body>

10、Vue表单

<script src="js/vue.js"></script>

<body>
    <div id="app">
        <form>
            <input type="text" v-model="userName" /><br />
            <input type="password" v-model="password" /><br />
            <input type="radio" v-model="sex" value="1" />男
            <input type="radio" v-model="sex" value="0" />女<br />
            <input type="checkbox" v-model="hobby" value="eat" />吃
            <input type="checkbox" v-model="hobby" value="drink" />喝
            <input type="checkbox" v-model="hobby" value="paly" />玩<br />
            <select v-model="deptId">
                <option v-for="(dept, index) in list" :key="index" :value="dept.deptId">{{dept.deptName}}</option>
            </select>
        </form>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            data: {
                userName: "tom",
                password: "123",
                sex: 0,
                hobby: ["drink"],
                list: [{
                        deptId: 10,
                        deptName: "人事部"
                    },
                    {
                        deptId: 20,
                        deptName: "研发部"
                    },
                    {
                        deptId: 30,
                        deptName: "销售部"
                    },
                ],
                deptId: 20
            }
        })
    </script>

</body>

</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值