vue各种实例集合

注意:以下所有示例基于vue 2.x、Vuex 2.x、

vm.$mount()-挂载:

<body>
    <div id="a">
    </div>
</body>
<script>
    var A = Vue.extend({
        template: ‘<p>123</p>‘
    });

    /*// 自动挂载
    new A({
        el: ‘#a‘
    });*/

    var a = new A();
    a.$mount(‘#a‘)// 手动挂载
</script>

局部注册:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <com-b></com-b>
    <com-c></com-c>
    <com-d></com-d>
</div>

<template id="com-d">
    <div>comD</div>
</template>

<script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.js"></script>
<script>
var comC = Vue.component(‘comC‘, {
    template: ‘<div>comC</div>‘
});

var vm = new Vue({
    el: ‘#app‘,
    components: {
        comB: {
            template: ‘<div>comB</div>‘
        },
        comC: comC,
        comD: {
            template: "#com-d"
        }
    }
});
</script>
</body>
</html>

动态组件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <component :is="cur"></component>
    <button @click="change">change</button>
</div>

<template id="comA">
    <div>comA</div>
</template>

<script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.js"></script>
<script>
var vm = new Vue({
    el: ‘#app‘,
    data: {
        cur: {
            template: ‘<div>cur</div>‘
        }
    },
    methods: {
        change: function(){
            this.cur = this.cur == ‘comA‘ ? ‘comB‘ : ‘comA‘
        }
    },
    components: {
        comA: {
            template: ‘#comA‘
        },
        comB: {
            template: ‘<div>comB</div>‘
        }
    }
})
</script>
</body>
</html>

计算示例(computed):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    {{intro}}
    <input v-model="name"/>
    <input v-model="age"/>
</div>

<script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.js"></script>
<script>
var vm = new Vue({
    el: ‘#app‘,
    data: {
        name: ‘Samve‘,
        age: 32
    },
    computed: {
        intro: function(){
            return ‘name:‘ + this.name + ", age: " + this.age;
        }
    }
});
</script>
</body>
</html>

自定义指令:实现"点击按钮使文本框获取焦点"示例(directive)

<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <input v-focus="isFocus"/>
    <button @click="change">change</button>
</div>

<script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.js"></script>
<script>
Vue.directive(‘focus‘, {
    inserted: function(el, binding){
        if(binding.value){
            el.focus();
        }else{
            el.blur();
        }
    },
    componentUpdated: function(el, binding){
        if(binding.value){
            el.focus();
        }else{
            el.blur();
        }
    }
});

let vm = new Vue({
    el: ‘#app‘,
    data: {
        isFocus: true
    },
    methods: {
        change(){
            this.isFocus = !this.isFocus;
        }
    }
});
</script>
</body>
</html>

使用jquery调用接口数据:

<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <div>{{list}}</div>
</div>

<script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.js"></script>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
<script>
let vm = new Vue({
    el: ‘#app‘,
    data: {
        list: ‘‘
    },
    created: function(){
        let that = this;
        $.ajax({
            url: ‘http://v3.faqrobot.org/servlet/AQ?s=p&sysNum=14464304598886414&&sourceId=0×tamp=1473514741278&dataType=json‘,
            dataType: ‘jsonp‘,
            success: function(data){
                that.list = data.webConfig.helloWord;
            }
        })
    }
})
</script>
</body>
</html>

slot示例:

<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <com-a>
        <p>中国科学院</p>
        <p>院士</p>
        <p slot="slotA">杨院士</p>
        <com-b></com-b>
    </com-a>
</div>

<template id="comA">
    <div>
        <slot></slot>
        <slot></slot>
        <slot name="slotA"></slot>
        <P>comA</P>
    </div>
</template>

<template id="comB">
    <div>comB</div>
</template>

<script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.js"></script>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
<script>
Vue.component(‘comA‘, {
    template: ‘#comA‘
});

Vue.component(‘comB‘, {
    template: ‘#comB‘
});

let vm = new Vue({
    el: ‘#app‘
});
</script>
</body>
</html>

vuex示例:

a. 简单计数

<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <div>{{num}}</div>
    <div><button @click="add">add</button></div>
    <div><button @click="reduce">reduce</button></div>
</div>

<script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.js"></script>
<script src="https://cdn.bootcss.com/vuex/3.0.1/vuex.js"></script>
<script>
Vue.use(Vuex);

let myStore = new Vuex.Store({
    state: {
        num: 0
    },
    mutations: {
        add: function(state){
            state.num++;
        },
        reduce: function(state){
            state.num--;
        }
    }
});

let vm = new Vue({
    el: ‘#app‘,
    store: myStore,
    computed: {
        num: function(){
            return  myStore.state.num;
        }
    },
    methods: {
        add(){
            myStore.commit(‘add‘);
        },
        reduce(){
            myStore.commit(‘reduce‘);
        }
    }
})
</script>
</body>
</html>

b. 子组件获取Vuex状态:

<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <div>{{num}}</div>
    <com-a></com-a>
</div>

<script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.js"></script>
<script src="https://cdn.bootcss.com/vuex/3.0.1/vuex.js"></script>
<script>
Vue.use(Vuex);

let myStore = new Vuex.Store({
    state: {
        num: 0
    }
});

let vm = new Vue({
    el: ‘#app‘,
    store: myStore,// 把store实例注入所有的子组件
    computed: {
        num(){
            return this.$store.state.num;// 使用this.$store即可引用s
        }
    },
    components: {
        comA: {
            template: `<div>子: {{num}}</div>`,
            computed: {
                num(){
                    return this.$store.state.num;// 使用this.$store即可引用
                }
            }
        }
    }
})
</script>
</body>
</html>

参考:https://blog.csdn.net/u011500781/article/details/52475967

原文地址:https://www.cnblogs.com/samve/p/9424800.html

时间: 2024-11-08 21:44:33

vue各种实例集合的相关文章

【05】Vue 之 实例详解与生命周期

Vue的实例是Vue框架的入口,其实也就是前端的ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进行对整个Vue实例生成.编译.挂着.销毁等过程进行js控制. 5.1. Vue实例初始化的选项配置对象详解 前面我们已经用了很多次 new Vue({...})的代码,而且Vue初始化的选项都已经用了data.methods.el.computedd等,估计您看到这里时,应该已经都明白了他们的作用,我们就详细讲解一下他们的使用情况.更

Vue.js—组件快速入门以及Vue路由实例应用

上次我们学习了Vue.js的基础,并且通过综合的小实例进一步的熟悉了Vue.js的基础应用.今天我们就继续讲讲Vue.js的组件,更加深入的了解Vue,js的使用.首先我们先了解一下什么是Vue.js的组件,组件其实就是页面组成的一部分,它是一个具有独立的逻辑和功能或页面,组件可以扩展 HTML 元素,封装可重用的代码.组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象为一个组件树,如下图: 接下来我们就仔细讲讲组件的使用吧. 1 全局组件 以下就是我们注册

前端MVC Vue2学习总结(二)——Vue的实例、生命周期与Vue脚手架(vue-cli)

一.Vue的实例 1.1.创建一个 Vue 的实例 每个 Vue 应用都是通过 Vue 函数创建一个新的 Vue 实例开始的: var vm = new Vue({ // 选项 }) 虽然没有完全遵循 MVVM 模型,Vue 的设计无疑受到了它的启发.因此在文档中经常会使用 vm (ViewModel 的简称) 这个变量名表示 Vue 实例. 1.vue.js就是一个构造器,通过构造器Vue来实例化一个对象:例如:var vm = new Vue({});2.实例化Vue时,需要传入一个参数(选

vue的实例属性$options

vue的实例属性$options是用来获取定义在data外的数据和方法的. <script> export default { name: "Test", data() { return { }; }, //在data外面定义的属性和方法通过$options可以获取和调用 name: "zs", age: 12, haha() { console.log("haha"); }, created() { console.log(this

五十三、初识vue,实例成员语法,指令,

vue 1.什么是vue? 可以独立完成前后端分离式web项目的JavaScript框架 2.为什么要学习vue? 三大主流框架:Angular(脸书).React(git公司).vue(中国人第三方) 先进的前端设计模式:MVVM 可以完全脱离服务器,以前端代码复用渲染整个页面:组件化开发 vue框架 vue是前端框架:Angular(脸书).React(git公司).vue(中国人第三方) vue:结合其他框架优点,轻量级,中文API,数据驱动,双向绑定,MVVM设计模式.组件化开发.单页面

Vue小实例

最近刚学习Vue的官方文档,了解了指令.模板.组件.数据双向绑定等有关Vue的知识点.因此估摸着做点实例出来练练手. 下面介绍一个简单的例子,模拟购物车自动统计金额,效果图如下: 代码如下: <div id="demo"> <a v-on:click="tog" class="list-group-item active">商品总金额:{{total}}</a> <div v-if="show&

Vue.js实例

构造器 每个 Vue.js 应用都是通过构造函数 Vue 创建一个 Vue 的根实例 启动的: var vm = new Vue({ // 选项 })

VUE入门实例,模版组件用法

终于见到vue模板组件实例了 来源于 http://www.jianshu.com/p/23e041fc013e 第一种 //首先,别忘了引入vue.js<div id="user_name_01"></div><script src="../node_modules/vue/dist/vue.js"></script><script> var User_01 = Vue.extend({// 创建可复用的

JQuery的实例集合

这一节将汇总前面的JQuery的基础实例 1.选择器 1.$("this").hide() 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"> 6 </script> 7 &l