网站需要审核吗,包包网站建设可行性分析,外贸网站建设哪家比较好,win7系统做网站服务器Vue 3 提供了多种方式来构建用户界面#xff0c;包括选项式 API 和 Composition API。下面我将详细介绍 Vue 3 的基本使用和语法#xff0c;主要集中在选项式 API 上#xff0c;因为这对于初学者来说更容易上手。
1. 创建 Vue 项目
如果你还没有一个 Vue 项目#xff0c;…Vue 3 提供了多种方式来构建用户界面包括选项式 API 和 Composition API。下面我将详细介绍 Vue 3 的基本使用和语法主要集中在选项式 API 上因为这对于初学者来说更容易上手。
1. 创建 Vue 项目
如果你还没有一个 Vue 项目可以参考之前提到的方法使用 Vue CLI 创建一个新的项目
vue create my-vue-app选择默认配置或根据需要手动选择特性。然后进入项目目录并启动开发服务器
cd my-vue-app
npm run serve2. 基本结构
典型的 Vue 项目结构如下 public/存放静态资源。 src/源代码目录。 assets/放置图片等静态资源。components/存放可复用的组件。App.vue根组件。main.js入口文件负责初始化应用。
3. 单文件组件 (SFC)
在 Vue 中单文件组件Single File Component, SFC是一种特殊的文件格式 .vue它允许在一个文件中定义模板、脚本和样式。
示例HelloWorld.vue
templatediv classhelloh1{{ msg }}/h1/div
/templatescript
export default {name: HelloWorld,props: {msg: String}
}
/scriptstyle scoped
.hello {color: #42b983;
}
/style这里template 标签定义了 HTML 模板script 标签包含了 JavaScript 逻辑而 style 标签则用于定义样式。scoped 属性确保样式只应用于当前组件。
4. 数据绑定
文本插值
使用双大括号 {{ }} 进行文本插值。
spanMessage: {{ message }}/spanv-bind 绑定属性
使用 v-bind 或其简写 : 来动态设置元素的属性。
img :srcimageSrc altImagev-model 双向数据绑定
对于表单输入元素v-model 实现双向数据绑定。
input v-modelinputValue typetext
p你输入的是: {{ inputValue }}/p5. 事件处理
使用 v-on 或其简写 来监听 DOM 事件并调用方法。
button clickhandleClick点击我/button在 script 部分定义方法
methods: {handleClick() {alert(按钮被点击了);}
}6. 条件渲染与列表渲染
v-if 和 v-show 用于条件性地显示元素。v-for 用于循环渲染列表。
示例
ulli v-for(item, index) in items :keyindex{{ item.text }}/li
/ul在 script 中定义数据
data() {return {items: [{ text: Item 1 },{ text: Item 2 },{ text: Item 3 }]};
}7. 计算属性与侦听器
计算属性通过 computed 定义基于依赖进行缓存。侦听器通过 watch 监听数据变化并执行函数。
示例
export default {data() {return {firstName: John,lastName: Doe};},computed: {fullName() {return ${this.firstName} ${this.lastName};}},watch: {fullName(newVal, oldVal) {console.log(fullName changed from ${oldVal} to ${newVal});}}
};8. 组件通信
Props父组件向子组件传递数据。Events子组件向父组件发送消息。Provide/Inject祖先组件向后代组件提供数据。
示例
父组件 ParentComponent.vue
templateChildComponent :messageparentMessage childEventhandleChildEvent /
/templatescript
import ChildComponent from ./ChildComponent.vue;export default {components: {ChildComponent},data() {return {parentMessage: Hello from parent};},methods: {handleChildEvent(message) {console.log(Received from child:, message);}}
};
/script子组件 ChildComponent.vue
templatedivp{{ message }}/pbutton clicksendToParentSend to Parent/button/div
/templatescript
export default {props: [message],methods: {sendToParent() {this.$emit(childEvent, Hello from child);}}
};
/script9. 路由
对于单页应用(SPA)你需要使用 vue-router 来管理不同页面之间的导航。
安装 vue-router
npm install vue-routernext配置路由
创建 router/index.js 文件
import { createRouter, createWebHistory } from vue-router;
import Home from ../views/Home.vue;
import About from ../views/About.vue;const routes [{ path: /, component: Home },{ path: /about, component: About }
];const router createRouter({history: createWebHistory(),routes
});export default router;在 main.js 中引入并使用路由器
import { createApp } from vue;
import App from ./App.vue;
import router from ./router;const app createApp(App);
app.use(router);
app.mount(#app);