### key值
虚拟DOM对比节点是否需要更新,通过key值比较,key值建议不要用随机数或下标,用id值,保持唯一性。
### commit()方法没有返回值
commit()方法没有返回值,在mutations中定义的方法就是用来修改state中的值的,如果要封装一些自己用的方法,在store实例外面用ES5的方式声明。如果在mutations中声明,再通过commit()在另一个mutations中方法中调用,因为commit()没有返回值,所以拿不到这个值。
### let obj1={...obj}
用解构的方式去复制对象,如果被复制对象只有一层,那么两个对象之间没有引用关系。
### splice()的用途
前面watch监听中提到过在特殊情况下无法监听到数组的变化,一是通过下标来更改数组中的数据,二是通过length来将数据清空,对应的解决办法是通过vue的实例方法$set()进行设置,通过splice()来清空数组。
在vuex中,通过下标对数组进行修改无效,此时通过splice()可以进行修改。
### vue中常用的ui框架
pc端:
element-ui
iview
移动端:
mint-ui
vant
cube
antd vue
### mint-ui的使用
①安装:npm install mint-ui -S
②main.js中引入全部组件:
import Vue from 'vue'; import Mint from 'mint-ui'; import "mint-ui/lib/style.min.css"; Vue.use(Mint);
③ui组件直接在根组件App.vue使用:
<h1>css组件</h1> <h3>样式</h3> <mt-button type="default">default</mt-button> <mt-button type="primary">primary</mt-button> <mt-button type="danger">danger</mt-button> <h3>尺寸</h3> <mt-button size="small">small</mt-button> <mt-button size="large">large</mt-button> <mt-button size="normal">normal</mt-button> <mt-button disabled>disabled</mt-button> <mt-button plain>plain</mt-button> <h3>icon</h3> <mt-button icon="back">back</mt-button> <mt-button icon="more">more</mt-button> <h3>自定义icon</h3> <mt-button> <img src="../public/img/01.jpg" height="20" width="20" slot="icon"> icon </mt-button> <h1>js组件</h1> <button @click="toast">toast</button>
④js组件需要引入再使用:
import {Toast} from 'mint-ui'; Toast({ message:"点击我了,操作成功", // 信息 position:"center", // 位置 duration:3000 // 持续时间 });
### mint-ui按需加载-借助babel-plugin-component插件
①安装babel-plugin-component:npm install babel-plugin-component -D
②项目根目录下新建 .babelrc 文件:
{ "plugins": [ [ "component", { "libraryName": "mint-ui", "style": true } ] ] }
③main.js中引入组件并注册(不再使用 import Mint from 'mint-ui';Vue.use(Mint); 这里在main.js中引入所有的组件都可以用,可以在需要该组件的组件中引入,只有当前组件可用):
import "mint-ui/lib/style.min.css"; import {Button,Header} from 'mint-ui'; Vue.component('my-btn', Button); Vue.component(Header.name,Header);
④根组件App.vue中Header组件使用mint-ui默认的名字作为标签使用,Button组件使用自定义标签名:
<mt-header title="fixed top"></mt-header> <my-btn type="default">default</my-btn> <my-btn type="primary">primary</my-btn> <my-btn type="danger">danger</my-btn>
### vant的使用-有赞
①安装vant:npm i vant -S
②安装自动按需引入插件:npm i babel-plugin-import -D
③根目录下babel.config.js文件中添加plugins配置项:
plugins: [ ['import', { libraryName: 'vant', libraryDirectory: 'es', style: true }, 'vant'] ]
④接着你可以在代码中直接引入 Vant 组件(这里不需要引入css,插件会自动引入):
import Vue from "vue"; import { Button } from 'vant'; Vue.use(Button);// 自动按需引入插件已经帮我们注册好了
④使用vant的button:
<van-button type="default">默认按钮</van-button> <van-button type="primary">主要按钮</van-button> <van-button type="info">信息按钮</van-button> <van-button type="warning">警告按钮</van-button> <van-button type="danger">危险按钮</van-button>
⑤使用icon:
import Vue from "vue"; import { Button,Icon } from 'vant'; Vue.use(Button); Vue.use(Icon);
<van-icon name="success" dot /> <van-icon name="eye-o" info="9" /> <van-icon name="chat-o" info="99+" />
### cube的使用-滴滴
①安装插件:npm install vue-cli-plugin-cube-ui -S(用cmd安装)
②添加cube-ui:vue add cube-ui
Use post-compile?(是否使用后期编译) ----y
Import type(引入类型) ----partly(按需引入)
Custom theme?(自定义主题) ----n
Use rem layout?(rem布局) ----n
Use vw layout?(vm布局) ----n
③App.vue中直接使用:
<cube-button>Button</cube-button> <cube-button type="submit">Submit Button</cube-button>
### element-ui的使用
①安装:npm i element-ui -S
②安装按需引入插件:npm install babel-plugin-component -D
③配置babel.config.js文件,将以下代码粘贴到plugins中(plugins中配置项是一个个数组):
[ "component", { "libraryName": "element-ui", "styleLibraryName": "theme-chalk" } ]