Vue常识

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div id="app">
        <!-- <p>{{title}}</p> -->
        <!-- <p>{{content}}</p> -->
        <!-- <p>{{1+2+3}}</p> -->
        <!-- <p>{{1>2?'对':'错'}}</p> -->
        <!-- <p>{{output()}}</p> -->
        <!-- <p>{{output()}}</p> -->
        <!-- <p>{{output()}}</p> -->
        <!-- <p>{{outputComputed}}</p> -->
        <!-- <p>{{outputComputed}}</p> -->
        <!-- <p>{{outputComputed}}</p> -->
        <!-- //这里不可以加括号,因为computed 是属性,不是函数 -->
        <p>{{title}}</p>

        <!-- 内容指令 -->
        <p v-text="title"></p>
        <p v-text="htmlContent"></p>
        <p v-html="htmlContent"></p>
        <!-- v-html可以解析html标签 -->

        <!-- 渲染指令 -->
        <p v-for="item in arr">{{ item }}</p>
        <p v-if="bool">创建p标签</p>
        <p v-show="bool">创建p标签</p>


        <!-- 属性指令 -->
        <p v-bind:title="title">666</p>
        <p :title="title">语法糖的形式</p>

        <!-- 事件指令 -->
        <button v-on:click="cout">按钮</button>
        <button @click="cout">语法糖</button>


        <!-- 表单指令 -->
        <!-- v-model实现双向数据绑定,只针对表单 -->
        <input type="text" v-model="t
        extValue">
        <p>{{textValue}}</p>

        <!-- 修饰符 -->
        <input type="text" v-model.trim="textValue">

    </div>
    <script src="./vue.min.js"></script>
    <script>
        //1.响应式数据与插值表达式
        const vm = new Vue({
            el: '#app',
            data() {
                return {
                    title: '这是标题文本',
                    content: '这是内容文本',
                    htmlContent: '这是一个<span>span</span>标签',
                    arr: ['a', 'b', 'c', 'd'],
                    bool: true,
                    textValue: '默认属性'
                }
            },
            //methods 属性,在这里写用于响应式数据处理的逻辑
            methods: {
                output() {
                    console.log("methods执行了");

                    return '标题为:' + this.title + '内容为:' + this.content
                },
                cout() {
                    alert('按钮触发了')
                }
            },
            //computed 属性,当我们第一次计算时,它会对结果进行缓存,当响应式数据没有变化,则意味着最终结果不会改变,
            // 可以直接使用缓存的结果
            computed: {
                outputComputed() {
                    console.log("computed执行了");
                    return '标题为:' + this.title + '内容为:' + this.content

                }
            },
            //watch 侦听器,属性,当响应式数据发生变化时,会触发回调函数
            watch: {
                title(newValue, oldValue) {
                    console.log("title发生了变化,旧值为:" + oldValue + ",新值为:" + newValue);

                }
            }
        })


    </script>
</body>

</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值