Vue 3 是一个流行的前端 JavaScript 框架,用于构建用户界面和单页应用程序。以下是 Vue 3 的基本语法和一些示例代码。
Vue 3 组件通常在 .vue 文件中定义,包括三个部分:<template>, <script>, <style>。
Copy code
<template>
<!-- HTML 模版 -->
</template>
<script>
export default {
// JavaScript 逻辑
};
</script>
<style>
/* CSS 样式 */
</style>
Vue 组件有多个生命周期钩子,例如:
created(): 组件实例被创建后调用。
mounted(): 组件挂载到 DOM 上后调用。
Copy code
export default {
created() {
// 组件创建后的逻辑
},
mounted() {
// 组件挂载后的逻辑
}
};
Vue 使用基于 HTML 的模板语法,允许你声明式地将 DOM 绑定到底层组件实例的数据。
<template>
<div v-for="item in items" :key="item.id">
{{ item.text }}
</div>
</template>
组件是 Vue 应用的基本构建块。
注册组件:
import MyComponent from './MyComponent.vue';
export default {
components: {
MyComponent
}
};
父组件 -> 子组件: 通过 props 传递数据。
子组件 -> 父组件: 通过自定义事件。
兄弟组件通信: 使用 Vuex 或 Pinia(Vuex 的替代品)。
在 Vue 3 中,<script setup> 是一个编译时语法糖,用于使组件的编写更加简洁和直观。这种语法的核心优点是减少样板代码,并直接使用 Composition API。它也提供了更好的类型推断支持,特别是在使用 TypeScript 时。
<script setup> 语法
在 <script setup> 中,你可以直接定义组件的逻辑,而不需要像传统的 <script> 那样导出一个对象。这简化了代码结构,使其更易于阅读和维护。
<script setup>
import { ref, onMounted } from 'vue';
const count = ref(0);
function increment() {
count.value++;
}
onMounted(() => {
console.log('组件已挂载');
});
</script>
ref: 用于定义一个响应式的数据引用。
const count = ref(0);
你可以通过 count.value 来获取或设置该数据的值。
reactive: 用于创建一个响应式的对象。
const state = reactive({ count: 0 });
可以直接通过 state.count 访问和修改属性。
示例代码
<template>
<button @click="increment">点击我</button>
<p>计数: {{ count }}</p>
</template>
<script setup>
import { ref } from 'vue';
const count = ref(0);
function increment() {
count.value++;
}
</script>
<style>
p {
color: red;
}
</style>
在 Vue 3 中,虽然 <script setup> 语法提供了一个更简洁的方式来使用 Composition API,但有时你可能想保持清晰的代码结构,比如通过明确地导出组件选项。这可以通过结合使用 <script setup> 和传统的 <script> 标签来实现。
这种方法允许你从 <script setup> 中导出响应式状态和函数,同时保持 <script> 中对组件的配置和声明周期钩子的访问。
示例代码
以下是一个示例,展示了如何在 Vue 3 组件中结合使用 <script setup> 和 <script>。
<template>
<button @click="increment">点击我</button>
<p>计数: {{ count }}</p>
</template>
<script setup>
import { ref } from 'vue';
const count = ref(0);
function increment() {
count.value++;
}
export { count, increment };
</script>
<script>
export default {
name: 'CounterComponent',
// 更多的组件选项...
mounted() {
console.log('组件已挂载');
}
};
</script>
<style>
p {
color: green;
}
</style>
在这个例子中:
<script setup>: 我们定义了一个响应式引用 count 和一个方法 increment。这两者都被导出,使得它们可以在 <script> 标签外部使用。
<script>: 我们定义了组件的名称和其它选项,如生命周期钩子 mounted。
这种结合使用两种脚本的方法提供了灵活性,允许你在使用 Composition API 的同时,保持组件的清晰和结构化。这在大型项目或需要更细致组织代码的情况下特别有用。
Copy code
<template>
<button @click="increment">点击我</button>
<p>计数: {{ count }}</p>
</template>
<script>
export default {
data() {
return {
count: 0
};
},
methods: {
increment() {
this.count += 1;
}
}
};
</script>
<style>
p {
color: blue;
}
</style>
这个简单的示例展示了一个按钮,点击它会增加计数,并在页面上显示。这涵盖了组件的基本结构、事件处理和响应式数据绑定的概念。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。