本文讲述 Vue 的基础知识,逐步更新。主要来自网络,有删改和自己的理解。
Vue指令
Vue 的指令是以 v- 开头的,它们作用于 HTML 元素,指令提供了一些特殊的特性,将指令绑定在元素上时,指令会为绑定的目标元素添加一些特殊的行为,我们可以将指令看作特殊的 HTML 特性(attribute)。
1 2 3
| 1.内容绑定,事件绑定(v-text、v-html、v-on基础) 2.显示切换,属性绑定(v-show、v-if、v-bind) 3.列表训练,表单元素绑定(v-for、v-on补充、v-model)
|
详细说明:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| v-text 1.v-text指令的作用是:设置标签的内容(textContent) 2.默认写法会替换全部内容,使用差值表达式{{}}可以替换指定内容 3.内部支持写表达式
v-html 1.v-html指令的作用是:设置元素的innerHTML 2.内容中有html结构会被解析成标签 3.v-text指令无论内容是多少,只会解析成文本 4.解析文本使用v-text,需要解析html结构使用v-html
v-on基础 1.v-on指令的作用是:为元素绑定事件 2.时间名不需要写on 3.指令可以简写成@ 4.绑定的方法定义在methods属性中 5.方法的内部通过this关键字可以访问定义在data中数据
v-show 1.v-show指令的作用是:根据真假切换元素的显示状态 2.原理是修改元素的display,实现显示隐藏 3.指令后面的内容,最终都会解析成布尔值 4.值为true元素显示,值为false元素隐藏 5.数据改变之后,对应元素的显示状态会同步更新
v-if 1.v-if指令的作用是:根据表达式的真假切换元素的显示状态 2.本质是通过操纵dom元素来切换显示状态(和v-show不同的地方) 3.表达式的值为true,元素存在于dom树中,为false,从dom树中移除 4.频繁的切换v-show,反之使用v-if,前者的切换消耗少
v-else 1.作为 v-if 或 v-show 的 “else” 部分代码。 2.必须立即跟在v-if或v-show元素的后面——否则它不能被识别。
v-bind 1.为元素绑定属性 2.完整写法时v-bind:属性名 3.简写的话可以省略v-bind,只保留:属性名 4.需要动态的增删class建议使用对象的方式
v-for 1.v-for指令的作用是:根据数据生成列表结构 2.数组经常和v-for结合使用 3.语法是(item,index)in 数据 4.item和index可以结合其他指令一起使用 5.数组长度的更新会同步到页面上是响应式的
v-on补充 1.事件绑定的方法写成函数调用的形式,可以传入自定义参数 2.定义方法时需要定义形参来接收传入的参数 3.事件的后面跟上.修饰符对事件进行限制 4.enter可以限制触发的按键为回车 5.事件修饰符有多种
v-model 1.v-model指令的作用是便捷的设置和获取表单元素的值 2.绑定的数据会和表单元素相关联 3.绑定的数据=表单数据的值
|
vue工程相关
npm run build
打包后得到dist
目录,无法直接打开 html 文件,需放到静态服务器中,可以是tomcat
、nginx
等,也可以是自行搭建的,如用gin
。
一些基础
使用 import 引入时,不加大括号({}
),导出所有,变量随便写。加了大括号,则指定导出哪个变量(如不存在,则为null)。
1 2
| import { webtitle } from '@/settings' import foobar from '@/settings'
|
其它代码片段:
1 2
| document.title = `${to.meta.title} - ${webtitle}`;
|
一些风格
命名为多单词(因为html名称为单个单词)
单文件组件的文件名应该要么始终是单词大写开头 (PascalCase),要么始终是横线连接 (kebab-case)。
只应该拥有单个活跃实例的组件应该以 The
前缀命名,以示其唯一性。
和父组件紧密耦合的子组件应该以父组件名作为前缀命名。如:
1 2 3 4 5 6 7 8
| components/ |- TodoList.vue |- TodoItem.vue |- TodoButton.vue
components/ |- SearchSidebar.vue |- NavigationForSearchSidebar.vue
|
注:可多个目录,下存放同名文件,但这样开发时稍麻烦使用前缀既方便IDE排序,又方便理解。——对于其它语言亦适用。同名函数/文件过多,会花费精力去找,去记,不当。
组件名应该以高级别的 (通常是一般化描述的) 单词开头,以描述性的修饰词结尾。如:
搜索相关的以Search
开头,设置相关的以Settings
开头。
这与自然语言不太一样,一切是为了开发和交流。 笔者之前的命名习惯(如:eeprom_write/eeprom_read)部分与此相似。
参考:https://cn.vuejs.org/v2/style-guide/
李迟 2020.11.11 周三 晚