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
vue各种实例集合的更多相关文章
- Vue.js实例练习
最近学习Vue.js感觉跟不上节奏了,Vue.js用起来很方便. 主要实现功能,能添加书的内容和删除.(用的Bootstrap的样式)demo链接 标题用了自定义组件,代码如下: components ...
- Vue组件实例间的直接访问
前面的话 有时候需要父组件访问子组件,子组件访问父组件,或者是子组件访问根组件. 在组件实例中,Vue提供了相应的属性,包括$parent.$children.$refs和$root,这些属性都挂载在 ...
- vue.js实例对象+组件树
vue的实例对象 首先用js的new关键字实例化一个vue el: vue组件或对象装载在页面的位置,可通过id或class或标签名 template: 装载的内容.HTML代码/包含指令或者其他组件 ...
- 前端MVC Vue2学习总结(二)——Vue的实例、生命周期与Vue脚手架(vue-cli)
一.Vue的实例 1.1.创建一个 Vue 的实例 每个 Vue 应用都是通过 Vue 函数创建一个新的 Vue 实例开始的: var vm = new Vue({ // 选项 }) 虽然没有完全遵循 ...
- Vue2.5笔记:Vue的实例与生命周期
理解与认识 Vue 的实例是我们学习 Vue 非常重要的一步,也是非常必须的,因为实例是它的一个起点,也是它的一个入口,只有我们创建一个 Vue 实例之后,我们才行利用它进行一些列的操作. 首先 Vu ...
- vue的实例
vue的实例 创建一个vue实例的写法和创建一个变量一样 var vm = new Vue{{ //我们一般用vm来接收vue的实例,vm是 ViewModel的缩写 }} 然后,我们就可以给vue实 ...
- Vue.js—组件快速入门及Vue路由实例应用
上次我们学习了Vue.js的基础,并且通过综合的小实例进一步的熟悉了Vue.js的基础应用.今天我们就继续讲讲Vue.js的组件,更加深入的了解Vue,js的使用.首先我们先了解一下什么是Vue.js ...
- 【05】Vue 之 实例详解与生命周期
Vue的实例是Vue框架的入口,其实也就是前端的ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进行对整个Vue实例生成.编译.挂着. ...
- 黑马vue---31-32、vue过滤器实例
黑马vue---31-32.vue过滤器实例 一.总结 一句话总结: vue内部的东西,无论是过滤器还是组件,都是键值对的方式 1.过滤器的定义语法? Vue.filter('过滤器的名称', fun ...
随机推荐
- 20170728 Celery项目 后台处理SQL SERVER的一个异常
-- 1. 感觉是访问DB 失败了,失败原因不明确 -- 2. 考虑解决问题的解决办法,后台记录异常,并重新发送任务. 具体如何来实现
- redis实现消息队列(七)
1. 介绍 redis有一个数据类型叫list(列表),它的每个子元素都是 string 类型的双向链表.我们可以通过 push,pop 操作从链表的头部或者尾部添加删除元素.这使得 list 既可以 ...
- abap函数返回结构体类型
1: 定义一个结构体 T-CODE se11 2: 选择 structure 3:输入相应的字段 4:激活 5:创建一个function module zfm_return_table,返回类型为 ...
- PHP自动加载SPL的四种处理方式
libs目录下有3个类文件: Test.class.php <?php class Test { public function __construct() { echo "Loadi ...
- 异常:分为 严重性错误:Error 异常:Exception
异常:是在运行时期发生的不正常情况.在java中用类的形式对不正常情况进行了描述和封装对象描述不正常的情况的类,就称为异常类以前:正常流程代码和问题处理代码相结合现在将正常流程代码和问题处理代码分离, ...
- 71A
#include <iostream> #include <string> using namespace std; int main() { string word; int ...
- Editplus 竖选,竖插入技巧
竖选方法 1,Alt + C, 然后用鼠标拖选 2,按住Alt健,再用鼠标拖选 行首行尾批量添加字符 以及其它常用正则 操作:Ctrl + H, 调出查找窗口,勾选按正则表达式查询 行首批量添加 ...
- npm下载指定版本的插件
eg:下载boostrap版本为3.3.7 npm install --save-dev bootstrap@3.3.7 备注:--save则将依赖的组件添加到package.json文件下 --sa ...
- numpy.loadtxt用法
numpy.loadtxt(fname, dtype=, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None ...
- 软件测试常用Linux命令
有些技能可以事半功倍,有些命运掌握在我们手中.熟练的掌握和使用这些命令可以提高工作效率,并且结合这些命令对测试过程中遇到的问题进行一些初步的定位. 1 目录与文件操作 1.1 ls(初级) 使用权限: ...