Vuejs中关于computed、methods、watch,mounted的区别

2021-02-15 02:18

阅读:695

YPE html>

1.computed是在HTML DOM加载后马上执行的,如赋值;

2.methods则必须要有一定的触发条件才能执行,如点击事件;

3.watch呢?它用于观察Vue实例上的数据变动。对应一个对象,键是观察表达式,值是对应回调。值也可以是方法名,或者是对象,包含选项。

所以他们的执行顺序为:默认加载的时候先computed再watch,不执行methods;等触发某一事件后,则是:先methods再watch。

4.mounted是生命周期

5.created和mounted区别?

技术图片

我们从图中看两个节点:
created:在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图。
mounted:在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。
其实两者比较好理解,通常created使用的次数多,而mounted通常是在一些插件的使用或者组件的使用中进行操作,比如插件chart.js的使用: var ctx = document.getElementById(ID);通常会有这一步,而如果你写入组件中,你会发现在created中无法对chart进行一些初始化配置,一定要等这个html渲染完后才可以进行,那么mounted就是不二之选。下面看一个例子(用组件)。

我们用下面的例子再解说解说这些关系

HTML

技术图片
my-vue
html css javascript vue
html
css
javascript
vue

购物清单

全选
商品
数量
单价(元)
金额(元)
操作
{{item.pro_name}}

品牌:{{item.pro_brand}}  产地:{{item.pro_place}}

规格/纯度:{{item.pro_purity}}  起定量:{{item.pro_min}}

配送仓储:{{item.pro_depot}}

0?item.pro_num--:‘‘">- +

{{item.pro_price.toFixed(2)}}

{{item.pro_price*item.pro_num}}.00

删除
删除所选商品 继续购物 去结算

{{getTotal.totalPrice}}

{{getTotal.totalNum}}件商品总计(不含运费):

技术图片

JS 

技术图片
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from ‘vue‘
import App from ‘./App‘
import router from ‘./router‘

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
        el: ‘#tab‘,
        data: {
            curId: 0
        },
        computed: {},
        methods: {},
        mounted: function () {
        }
    })
new Vue({
        el: ‘#shopping-cart‘,
        data: {
            productList: [
                {
                    ‘pro_name‘: ‘【斯文】甘油 | 丙三醇‘,//产品名称
                    ‘pro_brand‘: ‘skc‘,//品牌名称
                    ‘pro_place‘: ‘韩国‘,//产地
                    ‘pro_purity‘: ‘99.7%‘,//规格
                    ‘pro_min‘: "215千克",//最小起订量
                    ‘pro_depot‘: ‘上海仓海仓储‘,//所在仓库
                    ‘pro_num‘: 3,//数量
                    ‘pro_img‘: ‘../../images/ucenter/testimg.jpg‘,//图片链接
                    ‘pro_price‘: 800//单价
                },
                {
                    ‘pro_name‘: ‘【斯文】甘油 | 丙三醇‘,//产品名称
                    ‘pro_brand‘: ‘skc‘,//品牌名称
                    ‘pro_place‘: ‘韩国‘,//产地
                    ‘pro_purity‘: ‘99.7%‘,//规格
                    ‘pro_min‘: "215千克",//最小起订量
                    ‘pro_depot‘: ‘上海仓海仓储‘,//所在仓库
                    ‘pro_num‘: 3,//数量
                    ‘pro_img‘: ‘../../images/ucenter/testimg.jpg‘,//图片链接
                    ‘pro_price‘: 800//单价
                },
                {
                    ‘pro_name‘: ‘【斯文】甘油 | 丙三醇‘,//产品名称
                    ‘pro_brand‘: ‘skc‘,//品牌名称
                    ‘pro_place‘: ‘韩国‘,//产地
                    ‘pro_purity‘: ‘99.7%‘,//规格
                    ‘pro_min‘: "215千克",//最小起订量
                    ‘pro_depot‘: ‘上海仓海仓储‘,//所在仓库
                    ‘pro_num‘: 3,//数量
                    ‘pro_img‘: ‘../../images/ucenter/testimg.jpg‘,//图片链接
                    ‘pro_price‘: 800//单价
                }
            ]
        },
        computed: {
            //检测是否全选
            isSelectAll:function(){
                //如果productList中每一条数据的select都为true,返回true,否则返回false;
                return this.productList.every(function (val) { return val.select});
            },
            //获取总价和产品总件数
            getTotal:function(){
                //获取productList中select为true的数据。
                var _proList=this.productList.filter(function (val) { return val.select}),totalPrice=0;
                for(var i=0,len=_proList.length;i
技术图片

 

 

Vuejs中关于computed、methods、watch,mounted的区别

标签:red   over   index   技术   其它   btn   第一个   img   改变   

原文地址:https://www.cnblogs.com/sexintercourse/p/12988993.html


评论


亲,登录后才可以留言!