博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue常用的小知识点
阅读量:7061 次
发布时间:2019-06-28

本文共 1995 字,大约阅读时间需要 6 分钟。

hot3.png

一、this.$nextTick方法

    是一个更新视图的方法。在某些时候需要修改数据或dom时不会更新,可以通过this.$nextTick方法实现更新视图更新数据、dom结构。

    例:this.$nextTick(function () { console.log('我可以更新视图。') })

二、Vue.set()方法(可用在对象、数组)

    是一个更改数据源的数据。动态更改数据,可以添加、修改。如果data中没有改数据源,可以通过Vue.set()实现动态添加修改数据。

    例:Vue.set(数据源, 属性名, 值) Vue.set(this.data, 'id', 1)

三、设置代理(在config/index.js)

    proxyTable: {

        '/api/auth': {target: 'http://www.xxxx.com', changeOrigin: true, secure: false}

    }

四、子组件接收父组件数据(props)

    子组件 props: {url:{type:Function,required: true}}(接收数据)

     satch: { url:{immediate: true, handler: 'handlerFun'} }(监听数据变化,并回调)

五、父组件接收子组件数据(this.$emit('fun', data))

    父组件<child @childFun="parentFun" />

    parentFun(data) {console.log(data)}

六、vuex状态管理模块的store模式

    1.创建store实例(每个应用只包含一次)

        const store = new VuexStore({

            state: { // 存储状态

                todos: ''

            },

            getters: { // 读取状态信息

                doneTodos: state => state.todos

            },

            mutation: { // 修改状态

                   set_todos: (state, todosName) => {

                        state.todos = todosName

                    }

            },

            actions: { // 通过函数提交一个mutation

                todoFun ({ commit }, todosName) {

                    return Promise(resolve => {

                        commit('set_todos', todosName)

                        resolve()

                    })

                }

            }

        })

    2.使用module模块(store/)

        1>index.js

            import user from './user'

            import getters from './getters'

            const store = new Vuex.Store({

                modules: {

                    user

                },

                getters

            })

        2>user.js

            const user = {

                state: { name: '' }, // 状态

                mutations: {  // 更改状态

                    set_name: (state, userName) => {

                        state. name = userName

                    }

                },

                actions: { 通过函数更改状态

                    nameFun ({ commit }, userName) {

                        return new Promise(resolve => {

                            commit('set_name', userName)

                            resolve()

                        })

                    }

                }

            }

            export default user

        3>getters.js

            const getters = { // 读取状态

                name: state => state.user.name

            }

            export default getters

    3.在组件(.vue)中使用

        1>读取

            this.$store.getters.name

        2>直接更改状态

            this.$store.commit('set_name', '设置状态')

        3.>使用函数更改状态

            this.$store.dispatch('nameFun', '函数更改状态').then(() => {})

七、路由拦截器(permission.js)

    const whiteList = ['/login'] // 免进白名单

    router.beforeEach((to, from, nex) => {

        console.log(to) // 这个使用较多

        console.log(from)

        nex()

        if (whiteList.indexOf(to.path) !== -1) { next() }

    })

    

转载于:https://my.oschina.net/u/3431829/blog/2046364

你可能感兴趣的文章
《系统分析与设计方法及实践》一3.1 案例研究中涵盖的内容
查看>>
湖北省开启能源供给侧改革 将重点发展光伏发电
查看>>
美国伊利诺伊州响应区块链技术倡议活动 将举办黑客马拉松
查看>>
阿里音乐打算用大数据发掘下一个TFboy
查看>>
大数据能否成帮助人类 控制寨卡病毒疫情
查看>>
大数据为推动中国出版“走出去”提供新机遇
查看>>
Nest应用登陆tvOS 可在大屏幕上进行监控了
查看>>
Tumblr遭遇数据泄露 6000多万名用户受波及
查看>>
新的系统漏洞使iOS10更容易被攻破,苹果称已开始修复
查看>>
物联网路径,美国运营商怎么走?
查看>>
除Hadoop大数据技术外,还需了解的九大技术
查看>>
印度限制官员使用智能手机:真因为怕中国黑客?
查看>>
沪穗深百万地铁族担心:花生WiFi到底安全吗?
查看>>
东莞:现代会展公司成立呼叫中心 大数据分析提升办展质量
查看>>
实现“中国制造”向“中国智造”转变 大数据技术成关键
查看>>
苹果市值15个交易日蒸发450亿美元 相当于半个波音
查看>>
中小企业网络方案商该关注哪些增值空间?
查看>>
苹果Safari浏览器遭遇全球故障 搜索即崩溃
查看>>
周鸿祎谈360回归初衷
查看>>
安防爆发年 谈谈车牌识别如何实现从原理到应用的转变?
查看>>