(这些命令都是可以执行的)
npm install -g @vue/cli
vue create -p dcloudio/uni-preset-vue my-project
npm run dev:mp-weixin
容易出现 vue 和 vue-template-complier 版本不一致的问题
此时根据提示 重新安装对应的 vue 版本即可 npm install [email protected]
然后在重新运行项目 npm run dev:mp-weixin
<template>
<view class="content">
<view class="rpx">rpxview>
<view class="vw">vwview>
view>
template>
<script>
script>
<style>
.rpx{
/* rpx 小程序单位 750rpx = 屏幕的宽度 */
width: 750rpx;
height: 100px;
background-color: #007AFF;
}
.vw{
/* vw h5单位 100vw = 屏幕的宽度 100vh = 屏幕的高度 */
width: 50vw;
height: 100px;
background-color: #DD524D;
}
style>
npm i node-sass sass-loader
我安装的时候报了一个错
Error: Command failed: F:\python\Python37\python.EXE -c import sys; print “%s.%s.%s” % sys.version_info[:3];
Error: Can’t find Python executable “python”, you can set the PYTHON env variable.
我把 Python 删除,也没好·,我也很纳闷
我就安装cnpm
cnpm install
使用 cnpm安装sass
cnpm i node-sass sass-loader
成功了
<template>
<view class="content">
<view class="rpx">rpx11view>
<view class="vw">vwview>
<view class="sass">sass1view>
view>
template>
<script>
script>
<style lang="scss">
.rpx{}
.vw{}
.content{
.sass{
background-color: #710909;
color: $uni-bg-color;
}
}
style>
<template>
<view class="content">
<view>{{title}}view>
<image :src="color">image>
view>
template>
<script >
export default {
data() {
return{
title: "这个是标题",
color: "../../static/logo.png"
};
}
}
script>
<style>
style>
<template>
<view class="content">
<view v-for="item in list" :key="item.id">
{{item.id}}---{{item.text}}
view>
view>
template>
<script >
export default {
data() {
return{
list: [
{id:1,text:'橙子'},
{id:2,text:'橘子'},
{id:3,text:'桃子'}
]
};
}
}
script>
<style>
style>
<view v-if="true">显示1view>
<view v-if="false">看不到2view>
<view v-show="true">显示3view>
<view v-show="false">看不到4view>
<view v-if="true">1111view>
<view v-else-if="true">2222view>
<view v-else>3333view>
<template>
<view class="content">
<view>{{cnMoney}}view>
<view v-for="item in filterList" :key="item.id">
{{item.id}}---{{item.text}}
view>
view>
template>
<script >
export default {
data() {
return{
money: 10000,
list: [
{id:1,text:'橙子'},
{id:2,text:'橘子'},
{id:3,text:'桃子'}
]
};
},
computed:{
//加工数据
cnMoney(){
return "¥" + this.money;
},
//过滤数组
filterList(){
//只要 id > 2 都不要显示
return this.list.filter(v=>v.id<=2);
}
}
}
script>
<style>
style>
<template>
<view class="content">
<view data-index="11" @click="handleClick(1,$event)">点我view>
<view data-index="22" @click="handleClick(2,$event)">点我view>
view>
template>
<script>
export default{
methods:{
handleClick: (x,event) => {
console.log("我不想努力了"+x);
console.log(event);
console.log(event.currentTarget.dataset.index);
}
}
}
script>
<style>
style>
<template>
<image src="/static/logo.png">image>
template>
<script>
export default{
}
script>
<style>
style>
<template>
<view class="content">
<imgBorder>imgBorder>
<img-border>img-border>
view>
template>
<script>
//2.引入自定义组件
import imgBorder from "@/components/img-border.vue"
export default{
//3.组件注册
components:{
imgBorder:imgBorder
},
methods:{
handleClick: (x,event) => {
console.log("我不想努力了"+x);
console.log(event);
console.log(event.currentTarget.dataset.index);
}
}
}
script>
<style>
style>
子组件:
<template>
<image :src="mysrc">image>
template>
<script>
export default{
//声明一下要接收的 父组件传递过来的属性
props:{
mysrc:String
}
}
script>
<style>
style>
父组件:
<template>
<view class="content">
<imgBorder :mysrc="src1">imgBorder>
view>
template>
<script>
//2.引入自定义组件
import imgBorder from "@/components/img-border.vue"
export default{
data(){
return {
src1:"/static/logo.png"
}
},
//3.组件注册
components:{
imgBorder:imgBorder
}
}
script>
<style>
style>
这个有点拗
父组件:
<template>
<view class="content">
<view>
子组件传递过来的路径:{{src}}
view>
<imgBorder @srcChange="handleSrcChange" :mysrc="src1">imgBorder>
view>
template>
<script>
//2.引入自定义组件
import imgBorder from "@/components/img-border.vue"
export default{
data(){
return {
src: "",
src1:"/static/logo.png"
}
},
//3.组件注册
components:{
imgBorder:imgBorder
},
methods:{
handleSrcChange(e){
console.log("父组件的自定义事件被触发了");
console.log(e);
this.src = e
}
}
}
script>
<style>
style>
子组件:
<template>
<image @click="handleClick" :src="mysrc">image>
template>
<script>
export default{
//声明一下要接收的 父组件传递过来的属性
props:{
mysrc:String
},
data(){
return {
src: "",
}
},
methods:{
handleClick(){
console.log("女孩为何喜欢穿短裙???");
//子向父 传递数据 通过触发事件
//$emit("自定义的事件名称","要传递的参数")
this.$emit("srcChange",this.mysrc)
}
}
}
script>
<style>
style>
在 main.js 中
//定义全局数据 通过 vue 的原型来实现
Vue.prototype.baseurl="www.baidu.com";
<script>
//2.引入自定义组件
import imgBorder from "@/components/img-border.vue"
export default{
data(){
return {
src: "",
}
},
//3.组件注册
components:{
},
methods:{
handleSrcChange(e){
console.log("父组件的自定义事件被触发了");
console.log(e);
this.src = e
}
},
onLoad() {
console.log(this.baseurl);
}
}
</script>
在 App.vue 中
<script>
export default {
onLaunch: function() {
console.log('App Launch')
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
},
globalData:{
base:"www.360.com"
}
}
</script>
<style>
/*每个页面公共css */
</style>
onLoad() {
console.log(this.baseurl);
console.log(getApp().globalData.base);
}
在 App.vue 中
onLaunch: function(){}
<script>
export default {
onLaunch: function() {
console.log('App Launch 应用启动')
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
},
globalData:{
base:"www.360.com"
}
}
</script>
<style>
/*每个页面公共css */
</style>
在页面中:
onLoad(),onShow()
<script>
//2.引入自定义组件
import imgBorder from "@/components/img-border.vue"
export default{
data(){
return {
src: "",
src1:"/static/logo.png"
}
},
//3.组件注册
components:{
imgBorder:imgBorder
},
methods:{
handleSrcChange(e){
console.log("父组件的自定义事件被触发了");
console.log(e);
this.src = e
}
},
onLoad() {
console.log("页面加载完毕");
},
onShow() {
console.log("页面被看到");
}
}
</script>
在组件中:
mounted()
<script>
export default{
//声明一下要接收的 父组件传递过来的属性
props:{
mysrc:String
},
data(){
return {
src: "",
}
},
methods:{
handleClick(){
console.log("女孩为何喜欢穿短裙???");
//子向父 传递数据 通过触发事件
//$emit("自定义的事件名称","要传递的参数")
this.$emit("srcChange",this.mysrc)
}
},
mounted() {
console.log("组件挂载完毕")
}
}
</script>
uni-app https://uniapp.dcloud.io/frame?id=生命周期
vue https://cn.vuejs.org/v2/guide/instance.html?#生命周期图示
微信小程序 https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/page-life-cycle.html