Vue专用的浏览器调试插件。 官方没有详细说,我写了份学习笔记 vue-devtools 编译安装。
这种方式基本只有新人刚开始学习时会用到,所以只记得引入js即可使用就行。
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
生产中一般直接IDE
或Vue CLI
创建Vue项目
,这些都不用我们管。
官方提供的脚手架,便于创建Vue项目。还有UI界面版本。
参考资料:Vue CLI 官方文档、我的 Vue CLI 学习笔记
官方介绍 就不错,还带视频。
Vue
的实例化方式很 js
var mydata = { test: "test9test" }; //参数对象
var vm = new Vue({
data : mydata
});
如果想初始化后就不许再改了,可以冻结它Object.freeze(mydata)
除了data
还有很多选项:从【选项 / 数据】开始,向下看吧
{{ }}
:文本插值<span> 这样就可以将 {{ 初始化时data中的变量 }} 绑定到元素里了,还能实时更新 span>
v-html
:插 html// 变样这样
myHtml = "<span>666span>";
// 模板中写法
<p v-html="myHtml">p>
//结果
<p><span>666span>p>
v-bind
指令:绑定属性v-bind
:属性名
="属性值"
。属性值可以是变量
或表达式
(表达式可访问的全局变量白名单)v-bind
:[属性名用变量]
="属性值"
:
。v-bind:src="imgurl"
可以简化为:src="imgurl"
提醒
:html5 属性存在即生效。 如:disabled,disabled=“true”,disabled=“false” 都是生效// 注意字符串我加了单引号
<img v-bind:src="'https://www.baidu.com/img/flexible/logo/pc/result.png'"/>
// 简写
<img :src="'https://www.baidu.com/img/flexible/logo/pc/result.png'"/>
v-on
指令:监听 DOM 事件v-bind
:事件名
="回调函数"
@
。v-on:click="foo"
简写@click="foo"
典型的场景,阻止表单默认行为:
<form v-on:submit.prevent="onSubmit">...form>
这里的num
可以被当成一个普通变量使用。
和方法
相比区别是:只有a,b
变化过,才会重新计算。
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
<p>computed: {{num}}</p> <p>methods: {{num_methods()}}</p>
<button @click="fls">获取一次</button>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {a: 1,b: 2},
computed: {
num: function() {console.info('computed 执行1次');return this.a + this.b;}
},
methods: {
num_methods: function() {console.info('methods 执行1次');return this.a + this.b;},
fls: function(){this.num;this.num_methods();}
}
})
</script>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
<p>{{test}}</p>
<input type="text" v-model="test"/>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {test: "test9test"},
watch: {
test: function(newValue, oldValue) {
console.info(`修改前:${oldValue},修改后:${newValue}`);
}
}
})
</script>
setter
定义一个属性num
默认只定义了getter
。下面是设置 setter
的写法
// ...
computed: {
num: {
get: function () { return a; },
set: function (newValue) { this.a = newValue; }
}
}
// ...
官方举例时说的是:大部分情况用计算属性
更简便。但如果有异步
请求数据或是开销较大
的操作时就适合侦听器
了。
v-bind:class
="class属性值"
,简写::class
="class属性值"
class属性值
可以是普通变量
、对象变量
、对象字面量
key
将作为 class名
, value
为布尔变量
,当为真
绑,为假
不绑<p :class="{calssA:true, b:false, c:null, d:undefined, e:'', f:1 }">666p>
结果:
<p class="calssA f">666p>
class属性值
可以是数组变量
、数组字面量
变量
,变量的值
才是最终会添加到元素上的class名
元素
也可以是一个对象
,规则与上面对象语法一至。class="a b c"
会追加到模板根元素
的calss
上<my-component :class="[classA, 'a', 'b']">my-component>
v-bind:style
="style属性值"
,简写::style
="style属性值"
style
属性的值style属性值
可以是普通变量
、对象变量
、对象字面量
key
将作为 样式名
, value
为样式值
,样式值
是个变量<p :style="{color:'red'}">999p>
结果:
<p style="color: red;">999p>
每个元素是一个对象。
Vue.js 会自动
侦测并添加
相应的浏览器引擎前缀
。
将display
的多个可选值放在数组中,会自动渲染最后一个可用值。
<div :style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }"></div>
Vue 官方教程基数篇 - 本笔记的学习对象
Vue 官方CLI 官方文档
Vue 官方API 参考
Vue 官方API文档 - 生命周期钩子
vue-devtools 编译安装
我的 Vue CLI 学习笔记
Vue 学习笔记 - 基础(上)
Vue 学习笔记 - 基础(中)
Vue 学习笔记 - 基础(下)组件基础
Vue 学习笔记 - 深入了解组件
千锋教育-李卫民 Vue 渐进式 JavaScript 框架