一:插件
1:better-scroll 插件实现左右轮播滚动
2:vue-lazyload 插件实现图片懒加载
3:实现移动端自适应:
方案一
3.1: postcss 插件引到项目里 功能:把你自己写的代码px转化为rem(对于引入的外部插件,不做单位转化)
3.2:main.js 中引入一段js代码,设置html标签中的font-size大小
window.onresize = setHtmlFontSize function setHtmlFontSize () { const htmlWidth = document.documentElement.clientWidth || document.body.clientWidth const htmlDom = document.getElementsByTagName('html')[0] htmlDom.style.fontSize = htmlWidth / 10 + 'px' } setHtmlFontSize()
方案二:(vuecli3脚手架为例)
步骤一: 安装 lib-flexible
npm install lib-flexible --save
步骤二: 在main.js中引入lib-flexible
import 'lib-flexible/flexible.js' (设置html标签中的font-size大小)
步骤二: 安装px2rem-loader (使用px2rem-loader自动将css中的 px 转换成 rem)
npm install px2rem-loader --save-dev
步骤四: vue.config.js 里面添加配置
chainWebpack: config => {
config.module
.rule("css")
.oneOf("vue")
.use("px2rem-loader")
.loader("px2rem-loader")
.before("postcss-loader") // this makes it work.
.options({ remUnit: 75 })
.end();
config.module
.rule("less")
.oneOf("vue")
.use("px2rem-loader")
.loader("px2rem-loader")
.before("postcss-loader") // this makes it work.
.options({ remUnit: 75 })
.end();
}
4:vue-resource插件类似于axios插件
5:main.js中全局引入mint ui框架,页面里面随便使用该框架的组件
6:Vue页面中,代码中注释文字用 // 而不是 这种格式 模板中用 注释
7: template模板里面 v-show/v-if=’item’,js 里面 if(item){} else{}: item 取值null ,'',undefined,NaN, 返回为false 若返回true 表示 item 取值为:!0, !null, !'', !undfined, !NaN, 空对象,空数组( !1 !2 !5 (等)返回 false)
8: vue-cli2: vue init webapck 项目名称,按照这个方式创建的项目,此时 引入less,只需要 npm install less less-loader --save 即可,不需要再手动配置为webpack ,引入方式
9:vue 项目引入juqery插件,App.vue 中使用 $ 会报错,其他vue页面中没问题 vue 项目中快捷键
10:
2:样式文件
vue页面样式文件引入方式如下:
1.1:
1.2: (src一定要按照相对路径的方式引入)
1.3:引入图片的方式:
方法一:
scss / less样式文件中引入图片:
a{background-image:url('~@/assets/images/cat.png');} (@:表示src目录 ,vuecli框架自动配置的)
template 模板里面这样写:
js引入图片用 rquire(),如下:require('../../assets/images/cat.png');
解析:
方法二:
在vue.config.js 里面 配置别名:
chainWebpack: config => {
// 配置别名
config.resolve.alias
.set("img", resolve("src/assets/images"))
}
样式文件里面这样写:
background: url('~img/dialogs/bg.png') no-repeat;
template 模板里面这样写:
js 里面这样写:
perItems: [{ src: require("img/index/pSetting/person01.png"), name: "" }]
温馨提示:参考mint ui框架的demo(mint-ui-master),可以更快上手该框架哦!
word-break : 设置自动换行的处理方法
1.4: 父组件scoped 属性添加以后, 父组件内的样式 不会 影响子组件,若在父组件样式里,想修改子组件的样式,在某个元类名 添加 /deep/ 深度作用选择器以后, 子组件里面该类名也会起作用,如:
// 父组件(header.vue)
header.less:
.header{
/deep/ .carts{
height: 60px;
}
}
// 子组件 (
carts.vue
)
.carts{
}
// 此时 .carts 的高度为 60px;
15: vuejs 中修改数组或对象的值
1:修改数组对象中的值
perItems: [
{ src: require("img/index/pSetting/person01.png"), name: "" },
{ src: require("img/index/pSetting/order.png"), name: "我的订单" },
]
在 vuejs 中是无法检测到根据索引值修改的数据变动的, 所以:
方法一:
this.perItems[0].name = “”张三“”;
this.perItems.__ob__.dep.notify();
方法二:
this.$set(this.perItems[0], "name", "张三");
2:修改对象中的值
perItems: { src: require("img/index/pSetting/person01.png"), name: "" };
方法一:
this.perItems.name = “”张三“”;
this.perItems.__ob__.dep.notify();
方法二:
this.$set(this.perItems, "name", "张三");
3:修改数组中的值
perItems: ["张三01", "张三02", "张三03"]
方法一:
this.perItems[1] = "张三6"
this.perItems.__ob__.dep.notify();
方法二: this.$set(this.perItems, 1, "张三06"); // 修改数组中索引为1的 变量值
4:修改整个数组(分为 单纯数组 或 对象数组 )中的值,直接修改即可
单纯数组:
perItems: ["张三01", "张三02", "张三03"];
this.perItems = [6,8,9];
对象数组:
perItems:{
src: require("img/index/pSetting/person01.png"),
name: "hahhahaa"
},
{ src: require("img/index/pSetting/order.png"), name: "我的订单" }
]
let m = [
{
src: require("img/index/pSetting/logo.png"),
name: "hahhahaa"
},
{ src: require("img/index/pSetting/order.png"), name: "我的最爱" }
];
this.perItems = m;