Vue学习笔记(一)

83 阅读2分钟

一、快速创建一个vue项目

  1. 确保你的机器已经安装了Node.js和npm(npm通常随Node.js一起安装)。

  2. 打开终端或命令行界面,并导航到你想要创建项目的目录。

  3. 运行以下命令安装Vue CLI(命令行界面工具):

    npm install -g @vue/cli
    

    这将在全局范围内安装Vue CLI,使你可以使用它来快速构建Vue项目。

  4. 运行以下命令创建一个基于Vue 2的新项目:

    vue create my-vue-project
    

    my-vue-project替换为你想要的项目名称。然后,Vue CLI将向你提供一些选项,让你选择所需的特性和配置。你可以根据项目的需要进行选择,或者使用默认配置。

  5. 进入项目目录:

    cd my-vue-project
    

    **

  6. 运行以下命令启动开发服务器:

    npm run serve
    

    这将启动一个本地开发服务器,你可以在浏览器中查看和调试你的Vue项目。

二、组件传值: 1.父传子 使用props进行父组件向子组件的数据传递:
父组件可以通过在子组件上绑定属性并传递数据,子组件可以通过props属性接收来自父组件的数据。例如,父组件可以这样传递数据给子组件:

<template>
  <div>
    <child-component :message="data"></child-component>
  </div>
</template>

<script>
import ChildComponent from './ChildComponent.vue';

export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      data: 'Hello from parent'
    };
  }
};
</script>

子组件可以通过props接收来自父组件的数据:

<template>
  <div>
    <p>{{ message }}</p>
  </div>
</template>

<script>
export default {
  props: {
    message: {
      type: String,
      required: true
    }
  }
};
</script>

2,子传父

使用事件进行子组件向父组件的数据传递:
子组件可以通过$emit方法触发一个自定义事件,并传递数据给父组件。父组件可以通过在子组件上监听该事件来接收数据。例如,子组件可以这样触发事件:

<template>
  <div>
    <button @click="sendMessage">Send Message</button>
  </div>
</template>

<script>
export default {
  methods: {
    sendMessage() {
      this.$emit('messageSent', 'Hello from child');
    }
  }
};
</script>

父组件可以在子组件上监听该事件并接收数据:

<template>
  <div>
    <child-component @messageSent="handleMessage"></child-component>
  </div>
</template>

<script>
import ChildComponent from './ChildComponent.vue';

export default {
  components: {
    ChildComponent
  },
  methods: {
    handleMessage(message) {
      console.log(message); // 输出:Hello from child
    }
  }
};
</script>

2,子传父数据同步(搭配v-model) watch加v-model做到数据即时传输

<template>
	<div>
		<input v-model="data">
	</div>
</template>

<script>
export default {
	data () {
		return {
			data: ''
		};
	},
	watch: {
		data (newValue) {
			this.$emit('messageSent', newValue);
		}
	}
};
</script>

父组件可以在子组件上监听该事件并接收数据:

<template>
	<div>
		<Son @messageSent="handleMessage"></Son>
		<p>{{ message }}</p>
	</div>
</template>

<script>
import Son from './SonCom.vue';

export default {
	data () {
		return {
			message: 'Hello'
		};
	},
	components: {
		Son
	},
	methods: {
		handleMessage (msg) {
			this.message = msg
		}
	}
};
</script>