vue刨坑(二)
vue实例
vue实例
每一个应用都是通过vue这个构造函数创建根实例(root instance),启动 new vue(选项对象)
需要传入选项对象,对象包含挂载元素,数据,模板,方法等。
- el:挂载元素选择器 string|htmlelement
- data:代理数据 object|function
- methods:定义方法 object
vue代理data数据
每个vue实例都会代理其data对象所有的属性,这些被代理的属性是响应的。新添加的属性不具备响应功能,改变后不会更新视图。
vue实例自身属性和方法
暴露自身的属性和方法,已$开头 例如:$el $data
声明式渲染
命令式
需要以具体代码表达在哪里(where)做什么(what),如何实现(how)
声明式
只需要声明在哪里(where)做什么(what),而无需关心如何实现(how)
//eg1:如下为命令式:
var arr=[1,2,3,4];
var newArr=[];
for (var i = 0; i < arr.length; i++) {
newArr.push(arr[i]*2)
}
console.log(newArr);//2,4,6,8
//eg2:如下为声明式
var arr=[1,2,3,4,5];
var newArr=arr.map(function(item){
return item*2;
})
console.log(newArr);//2,4,6,8,10
在vue中,就是采用的声明式渲染方式,只要明确挂载元素和data值就好,复杂的赋值过程vm帮你实现了。
<div id='demo'>
<span>{{message}}</span>
</div>
<script src='vue.js'></script>
<script>
// 数据
let obj={
message:'hello vue',
id:'123'
}
// 声明式渲染
var vm= new Vue({
el:'#demo',
data:obj
})
console.log(vm.$data)
</script>
指令
是一种特殊的自定义行间属性
指令的职责就是当其表达式的值改变时,相应的某些行为应用到DOM上
在vue中,指令以V-开头
Vue中的内置指令
- v-bind 动态的绑定数据,简写为 :
- v-on 绑定事件监听器,简写为@
- v-text 更新数据,会覆盖已有结构
- v-html 可以解析数据中的HTML
- v-show 根据值得真假,切换元素的display属性
- v-if 根据值得真假,切换元素会被销毁、重建
- v-else 条件都不符合渲染
- v-else-if多条件进行判断,为真则渲染
- v-for基于原数据多次渲染元素或模板块
- v-model在表单控件元素上创建双向数据绑定
- v-pre跳过元素和子元素的编译过程
- v-once只渲染一次,随后数据更新不重新渲染
模板
HTML模板
基于DOM的模板,模板都是有效的可解析的HTML
<div id='demo'>
<div v-html="html" :custom='abc'></div>
{{true?'yes':'no'}}
</div>
<script src='vue.js'></script>
<script>
// 数据
let obj={
html:'<div>hello vue.js</div>',
abc:'123'
}
// 声明式渲染
var vm= new Vue({
el:'#demo',
data:obj
})
插值
- 文本:使用‘mustache’语法{{value}}
- 作用:替换实例上的属性值,当值改变时,插值内容处会自动更新
- 原生的HTML:双大括号输出的是文本,不会解析HTML
- 属性:可以使用v-bind 绑定,可以响应变化。
- 使用javascript表达式:写简单地表达式
字符串模板
template模板
<div id='demo'>
<div v-html="html" :custom='abc'></div>
</div>
<script src='vue.js'></script>
<script>
// 数据
let obj={
html:'<div>hello vue.js</div>',
abc:'123'
}
var str='<div>hello,{{abc}}</div>'
// 声明式渲染
var vm= new Vue({
el:'#demo',
data:obj,
template:str
})
页面显示 hello,123
- template选项对象属性
- 模板将会替换挂载的元素,挂载元素的内容将被忽略
- 根节点只能有一个
- 将HTML结构写在一对script标签中,设置type="x-template"
模板render函数
- render选项对象的属性
- createElement(标签名,[数据对象],子元素);其中子元素为文本或按钮。
vue刨坑(二)的更多相关文章
- vue踩坑(二):跨域以及携带cookie
最近后台需求要在请求的时候传cooki给后台,正常情况下拿到cookie后存在cookie里,同域名下是会自己带到请求头里的,但是因为要在本地调试,那么问题就来了,localhost:8080下面的c ...
- Vue刨坑
vue常见问题 1.在自定义组件里,你可以像任何普通元素一样用v-for.eg1: <my-component v-for="item in items"></m ...
- Vue 爬坑之路(十二)—— vue-cli 3.x 搭建项目
Vue Cli 3 官方文档:https://cli.vuejs.org/zh/guide/ 一.安装 @vue/cli 更新到 3.x 之后,vue-cli 的包名从 vue-cli 改成了 @vu ...
- Vue入坑教程(二)——项目结构详情介绍
之前已经介绍了关于Vue的脚手架vue-cli的安装,以及一些文件目录介绍.具体可以查看<vue 入坑教程(一)--搭建vue-cli脚手架> 下面简单说一下具体的文件介绍 (一) pac ...
- Vue 爬坑之路(二)—— 组件之间的数据传递
Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据.必须使用特定的方法才能实现组件之间的数据传递. 首先用 vue-cli 创建一个项目,其中 App.vue 是父组件,com ...
- (转)Vue 爬坑之路(二)—— 组件之间的数据传递
Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据.必须使用特定的方法才能实现组件之间的数据传递. 首先用 vue-cli 创建一个项目,其中 App.vue 是父组件,com ...
- Vue 爬坑之路(六)—— 使用 Vuex + axios 发送请求
Vue 原本有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource 目前主流的 Vue 项目,都选择 axios ...
- Vue 爬坑之路(九)—— 用正确的姿势封装组件
迄今为止做的最大的 Vue 项目终于提交测试,天天加班的日子终于告一段落... 在开发过程中,结合 Vue 组件化的特性,开发通用组件是很基础且重要的工作 通用组件必须具备高性能.低耦合的特性 为了满 ...
- Vue 爬坑之路(一)—— 使用 vue-cli 搭建项目
vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目,GitHub地址是:https://github.com/vuejs/vue-cli vue ...
随机推荐
- MyFirstDay_答案_1.**猫(自己整理)
1>***猫: python基础类: 字符串反转的常用处理方式: # 方法一:使用字符串切片 s = "hello python" result = s[::-1] prin ...
- keil 使用C++编程主要要点
1.中断处理,添加一下宏定义.如果不添加,中断服务函数不会链接到下载文件中:发生中断后,会停留在xxx.s文件的 "B ."语句. #ifdef __cplusplus exter ...
- Eclipse EE 运行 Myeclipse Web 应用
第一步:进入项目所在目录,打开.project文件,找到<natures>...</natures>标签,在中间添加如下子标签内容 <nature>org.ecli ...
- HTML介绍和head标签-01
主要内容 web标准 浏览器介绍 开发工具介绍 HTML介绍 HTML颜色介绍 HTML规范 HTML结构详解 一.web标准 web准备介绍: w3c:万维网联盟组织,用来制定web标准的机构(组织 ...
- cocos2d-x 3.0的入门程序:helloworld
看过了这么多不同方向的应用,发现很多程序入门都是helloworldhelloworld是所有程序员的绝对初恋 先看一下程序的运行结果吧 然后就是他的工程代码 工程的目录有两个 Classes:程序中 ...
- ARabevaluator 颜色渐变控制类
参考资料: http://blog.csdn.net/qq_33456552/article/details/52092865 实现渐变效果: ArgbEvaluator argbEvaluator; ...
- Docker容器 - 容器时间跟宿主机时间同步
在Docker容器创建好之后,可能会发现容器时间跟宿主机时间不一致,这就需要同步它们的时间,让容器时间跟宿主机时间保持一致. 转载自:https://www.cnblogs.com/kevingrac ...
- java跨服务器请求url获得数据
在项目中,有时需要通过请求远程服务器上的url获取数据(前提是程序所在服务器可以和url服务器ping成功), 用java在后台发送请求时,用到了java.net.URL, java.net.URLC ...
- HNOI2018 摸鱼记
HNOI2018 摸鱼记 今天我又来记流水账啦 Day 0 颓废的一天. 我,球爷和杜教在颓膜膜.io ych看起来在搓碧蓝 鬼知道哥达鸭干了什么 学习氛围只局限在机房的一角 后来全体Oier开会,5 ...
- laravel5.5队列
目录 简单实例 1. 简介和配置 1.1 好处 1.2 配置文件 1.3 队列驱动的必要配置 2. 创建任务 2.1 生成任务类 2.2 修改任务类 2.3 分发任务 2.4 自定义队列 & ...