vue2.0项目中methods中的方法可以动态加载吗?

新手上路,请多包涵

1.我的想法是把一部分js脚本存储在数据库中,然后通过请求把js脚本请求下来,动态加载到组件中不知道能不能实现

2.按照曾经的script 的方法 eval('function a(){alert(1)};function b(){alert(2)};') 就能把两个字符串的function添加进去.

不知道这种想法能不能实现,如果不能实现,我应该如何才能处理这种问题呢

阅读 10k
3 个回答

方法应该不可以动态加载,不过有一个思路你可以参考一下。
方法是固定的,在方法里动态加载函数字符串,然后执行。如下
<template>
<button @class="dynamic"></button>
</template>

<script>
export default {
name: 'test',
data() {
},
methods: {

dynamic() {
  //加载函数字符串,然后执行
}

}
}
</script>

<style lang="less" scoped>
</style>

methods中的方法肯定不能动态加载,不过可以从后端获取脚本,动态执行全局function

<body>
<div id="vuedom">
    <div v-for="(ele,index) in obj">
        <button @click="ele.fun">123</button>
    </div>

</div>
<script src="vue/vue.js"></script>
<script>
    new Vue({
        el:'#vuedom',
        data:{
            a:123,
            obj:{}
        },
        methods:{
            fun(){}
        },
        created(){
            let obj=[
                {
                    fun:function () {
                        console.log(123)
                    },
                    name:123,
                }
            ];
            for(let a=0;a<obj.length;a++){
                this[obj[a].fun] = obj[a].fun
            };
            this.obj = obj;
        }
    })
</script>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏