实例成员

实例

el:实例

new Vue({
    el: '#app'
})
// 实例与页面挂载点一一对应
// 一个页面中可以出现多个实例对应多个挂载点
// 实例只操作挂载点内部内容

data:数据

为插值表达式中变量提供数据

data中的数据可以通过vue实例直接或间接访问.

在new Vue ({})括号中设定的方法

method:方法

为v-on事件绑定事件

methods为事件提供方法

delimiters:分隔符

当vue的{{}}与模板语法冲突时,可以设置更改

new Vue({
    el: '#app',
    data: {\},
    delimiters: ['[{', '}]'],  // 修改插值表达式符号})

delimiters是个二元数组,第一个元素为左侧,第二个元素为右侧.

filter:过滤器

  1. 在filters成员中定义过滤器方法
  2. 可以对多个值进行过滤,过滤时还可以传入额外的辅助参数
  3. 过滤的结果可以再进行下一次过滤(可以进行过滤的串联)
<body>
    <div id="app">
        <!--
        总结:
        1、在filters成员中定义过滤器方法
        2、可以对多个值进行过滤,过滤时还可以额外传入辅助参数
        3、过滤的结果可以再进行下一次过滤(过滤的串联)
        -->
        <p>{{ num | f1 }}</p>
        <p>{{ a, b | f2(30, 40) | f3 }}</p>
    </div>
</body>
<script src="js/vue.js"></script>
<script>
    new Vue({
        el: '#app',
        data: {
            num: 10,
            a: 10,
            b: 20,
        },
        filters: {
            // 传入所有要过滤的条件,返回值就是过滤的结果
            f1 (num) {
                console.log(num);
                return num * 10;
            },
            f2 (a, b, c, d) {
                console.log(a, b, c, d);
                return a + b + c + d;
            },
            f3 (num) {
                return num * num;
            }
        }
    })
</script>

computed:计算

  1. computed计算属性可以声明 方法属性(该方法属性一定不能在data中声明,否则会报重复声明错误)
  2. 方法属性 必须在页面中渲染,才会启动绑定的方法(result),方法属性的值就是绑定方法(result)的返回值.
  3. 绑定的方法中出现的所有变量都会被监听,任何一个发生变化的值更新都会重新回调绑定方法,从而更新方法属性的值
  4. 一般用来解决:一个变量值依赖多个变量的问题
<body>
    <div id="app">
        <input type="number" min="0" max="100" v-model="n1">
        +
        <input type="number" min="0" max="100" v-model="n2">
        =
        <button>{{ result }}</button>
    </div>
</body>
<script src="js/vue.js"></script>
<script>
    new Vue({
        el: '#app',
        data: {
            n1: '',
            n2: '',
            // result: 0,
        },
        /**
         * 总结:
         * 1、computed计算属性可以声明 方法属性(方法属性一定不能在data中重复声明)
         * 2、方法属性 必须在页面中渲染,才会启用绑定的方法,方法属性的值就是绑定
         * 方法的返回值
         * 3、绑定的方法中出现的所有变量都会被监听,任何一个变化发生值更新都会
         * 重新出发绑定方法,从而更新方法属性的值
         *
         * 一般用来解决的问题:一个变量值依赖于多个变量
         */
        computed: {
            result () {
                console.log('被调用了');
                n1 = +this.n1;
                n2 = +this.n2;
                return n1 + n2;
            }
        }
    })
</script>

watch:监听

  1. 监听的属性需要在data中声明,监听方法不需要返回值
  2. 监听的方法名就是监听的属性名()
  3. 监听方法有两个回调函数:n:当前值;o:上一次的值
  4. 解决了:多个变量依赖于一个变量的问题
  5. 属性更新,方法被调用
<body>
    <div id="app">
        <p>姓名:<input type="text" v-model="full_name"></p>
        <p>姓:{{ first_name }}</p>
        <p>名:{{ last_name }}</p>
    </div>
</body>
<script src="js/vue.js"></script>
<script>
    new Vue({
        el: '#app',
        data: {
            full_name: '',
            first_name: '未知',
            last_name: '未知',
        },
        watch: {
            // n是监听的属性当前值,o是其上一次的值,监听的属性值每次更新都会回调监听方法

            /**
             * 总结:
             * 1、监听的属性需要在data中声明,监听方法不需要返回值
             * 2、监听的方法名就是监听的属性名,该属性值发生更新时就会回调监听方法
             * 3、监听方法有两个回调参数:当前值,上一次值
             *
             * 解决的问题:多个变量值依赖于一个变量值
             */
            full_name(n, o) {
                name_arr = n.split('');
                this.first_name = name_arr[0];
                this.last_name = name_arr[1];
            },
        }
    })
</script>

template:模板

根组件的模板是替换挂载点的模板

局部或全局组件的模板是替换挂载点的模板

props:

子组件可以通过props自定义组件属性(采用反射机制,需要填写字符串,但是使用时可以直接作为变量)

components:注册组件

局部子组件的注册使用,相当于创建一个临时占位符,程序运行后挂载点部分会被模板替换

猜你喜欢

转载自www.cnblogs.com/agsol/p/12064578.html
今日推荐