当前位置: 首页 > news >正文

Vue学习笔记之应用创建和基础知识

1、安装方式

CDN方式安装:

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

2、创建应用

使用Vue内置对象创建一个应用,基本代码结构如下:

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<div id="app"></div>
<script>const { createApp } = Vue;createApp({data(){return {}},methods: {},mounted() {},computed: {}}).mount('#app');
</script>

id为app的div元素,代表vue应用绑定的dom元素,vue对内部数据的操作都会直接影响dom的数据更新;

data:响应式数据均定义在data内部

methods:自定义函数定义在区域

mounted:DOM元素挂在应用后,可再此执行初始化操作,使用this对象操作data数据

computed:计算属性定义在此区域,一般只涉及读操作,基于响应式数据组合为一个新属性,提供给DOM元素渲染,也支持修改计算属性,但不建议这么做。

3、插值语法

使用两个{{}}大括号表示,如在data部分定义返回属性count,

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<div id="app">{{count}}
</div>
<script>const { createApp } = Vue;createApp({data() {return {count: 1}},}).mount('#app');
</script>

3、v-if,v-else判断指令

cansee为真时展示v-if的p元素,否则展示v-else的p元素

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<div id="app"><p v-if="cansee">can see me!</p><p v-else>you can't see me!</p>
</div>
<script>const { createApp } = Vue;createApp({data() {return {cansee: true,}}}).mount('#app');
</script>

4、v-on事件指令

v-on:click代表绑定onclick事件,在methods区域定义了事件处理函数,将响应式数据count执行加1操作,如下所示:

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<div id="app">{{count}}<button v-on:click="increment">点击我</button>
</div>
<script>const { createApp } = Vue;createApp({data() {return {count: null,}},mounted() {this.count = 1;},methods: {increment() {this.count++;}}}).mount('#app');
</script>

5、嵌套对象的使用

可以使用嵌套对象语法给DOM元素绑定数据,如下所示:

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<div id="app"><p>{{obj.nested.count}}</p><button v-on:click="increment">点击我</button>
</div>
<script>const { createApp } = Vue;createApp({data() {return {obj: {nested: { count: 0 }}}},mounted() {},methods: {increment() {this.obj.nested.count++;}}}).mount('#app');
</script>

6、计算属性的使用

计算属性基于响应式数据组合新的数据,计算属性的 getter 应只做计算而没有任何其他的副作用,不要改变其他状态、在 getter 中做异步请求或者更改 DOM。另外,避免直接修改计算属性的值。

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<div id="app"><p>Has published books:</p><span>{{isPublishedBooks}}</span><br/><button v-on:click="removeAll">删除所有</button><p>总指导是:{{fullName}}</p><button v-on:click="modifyZonzhidao">改名</button>
</div>
<script>const { createApp } = Vue;createApp({data(){return {author: {name: 'John Doe',books: ['Java guide 3','C# 高级编程','数据库基础'],firstName: 'Pan',lastName: 'three big stones'}}},methods: {removeAll() {this.author.books = [];},modifyZonzhidao() {this.fullName = '黄 飞鸿';}},computed: {isPublishedBooks() {return this.author.books.length > 0 ? 'Yes' : 'No';},fullName: {get() {return this.author.firstName + ' ' + this.author.lastName;},set(newValue) {//注意:这里使用解构赋值语法[this.author.firstName, this.author.lastName] = newValue.split(' ');}}}}).mount('#app');
</script>

6、类的绑定

使用vue将class绑定到DOM元素有以下5种方式:

1)单属性语法赋值class方式,:class="{active:isActive,'text-danger':hasError}",isActive为真将绑定active类,hasError为真将绑定text-danger类,同时为真将绑定两者

2)使用对象直接赋值class方式,:class="classObj",直接绑定classObj中所有为真的类

3)使用计算表达式方式赋值,:class="classObj2",classObj2是一个计算表达式,如下代码所示,也是绑定计算表达式返回对象中所有为真的class

4)使用数组方式赋值class,:class="[activeClass,errorClass]",直接绑定activeClass和errorClass所对应的class

5)基于条件判断+数组的混合方式赋值class,:class="[{active:isActive},errorClass]",如isActive为真,将绑定active和errorClass属性对应的class,否则只会绑定errorClass属性对应的class

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<style>.active{background-color:lightcoral;border:1px dotted black;width:200px;height:200px;opacity:0.5;}.text-danger{opacity:1;background-color:red;}
</style>
<div id="app"><div class="static" :class="{active:isActive,'text-danger':hasError}">单属性赋值class方式</div><div :class="classObj">多属性对象赋值class方式</div><div :class="classObj2">计算表达式赋值class方式</div><div :class="[activeClass,errorClass]">class赋值数组对象方式</div><div :class="[{active:isActive},errorClass]">class赋值数组对象带条件判断方式</div>
</div>
<script>const { createApp } = Vue;createApp({data(){return {isActive: true,hasError: false,classObj: {active: true,'text-danger': true},activeClass: 'active',errorClass: 'text-danger',}},methods: {},computed: {classObj2() {return {active: this.isActive && !this.hasError,'text-danger': !this.hasError}}}}).mount('#app');
</script>

6、内联样式的绑定

使用vue将内联元素绑定到DOM元素有以下3种方式:

1)单属性语法赋值style方式,:style="{color:activeColor,fontSize:fontSize+'px'}",绑定颜色和字体大小两个内联元素

2)使用对象直接赋值style方式,:class="styleObj",直接绑定styleObj中所有的内联元素

3)使用数组方式赋值style方式,:class="[styleObj,styleObj2]",将合并数组中所有对象下的内联元素

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<div id="app"><div :style="{color:activeColor,fontSize:fontSize+'px'}">内联样式直接赋值方式</div><div :style="styleObj">内联样式使用对象赋值方式</div><div :style="[styleObj,styleObj2]">内联样式使用数组对象赋值方式</div>
</div>
<script>const { createApp } = Vue;createApp({data(){return {activeColor: 'red',fontSize: 30,styleObj: {color: 'green',fontSize: '28px'},styleObj2: {fontWeight: 'bold',fontFamily: 'cursive'}}},methods: {},computed: {}}).mount('#app');
</script>
http://www.lryc.cn/news/289587.html

相关文章:

  • CSS3基础知识总结
  • 80.网游逆向分析与插件开发-背包的获取-自动化助手显示物品数据1
  • Python第三方扩展库NumPy
  • Dockerfile简介和基础实践
  • 3分钟 docker搭建 帕鲁服务器
  • [BUUCTF 2018]Online Tool(特详解)
  • Qt Design Studio+Pyside项目
  • 软件门槛之算法
  • 第八篇【传奇开心果系列】beeware的toga开发移动应用示例:实现消消乐安卓手机小游戏
  • 【MySQL】MySQL内置函数--日期函数/字符串函数/数学函数/其他相关函数
  • 应急响应红蓝工程师白帽子取证Linux和windows入侵排查还原攻击痕迹,追溯攻击者,以及各种木马和病毒以及恶意脚本文件排查和清除
  • vue项目使用element-plus
  • Fastbee物联网项目新手快速入门
  • Linux 网络流量相关工具
  • KMP算法关于next数组详解
  • 【Docker】数据持久化 挂载
  • redis-主从复制
  • 知识产权如何转为实缴资本,实操
  • docker-compose安装
  • 「 典型安全漏洞系列 」06.路径遍历(Path Traversal)详解
  • 【Android Gradle 插件】Gradle 参考文档收集
  • Controller的部分注解
  • CMake简明教程 笔记
  • 使用 sorted set 实现令牌桶限流
  • 云上高可用系统-韧性设计模式
  • 【保姆级教程】Windows11下go-zero的etcd安装与初步使用
  • golang通过go-git下载gitlab源码
  • 探索Pyecharts之美-绘制多彩旭日图的艺术与技巧【第37篇—python:旭日图】
  • c++ QT 信号的个人理解 信号就是独立文件调用的一种“协议”
  • C#语法(关键字)