什么网站可以兼职做设计,苏州网网站建设,百度收录提交之后如何让网站更快的展示出来,网络系统设计Vue CLI 是 Vue.js 官方提供的一个脚手架工具#xff0c;可以快速搭建 Vue.js 项目#xff0c;并提供了一些常见的工程化功能#xff0c;如代码打包、热重载、单元测试等。以下是 Vue CLI 的搭建和使用步骤#xff1a;
安装 Node.js
首先需要在本地安装 Node.js#xff…Vue CLI 是 Vue.js 官方提供的一个脚手架工具可以快速搭建 Vue.js 项目并提供了一些常见的工程化功能如代码打包、热重载、单元测试等。以下是 Vue CLI 的搭建和使用步骤
安装 Node.js
首先需要在本地安装 Node.js可以到官网 https://nodejs.org/ 下载并安装最新版的 Node.js。
安装 Vue CLI
在终端中输入以下命令安装 Vue CLI
npm install -g vue/cli创建新项目
在终端中进入要创建项目的目录并输入以下命令来创建新项目
vue create my-project其中my-project 是你要创建的项目名称可以自己修改。
启动开发服务器
项目创建完成后进入项目目录并输入以下命令来启动开发服务器
cd my-project
npm run serve这样就可以在浏览器中访问 http://localhost:8080 查看项目效果了。
以上是 Vue CLI 的基本使用流程接下来以一个简单的 TodoList 为例演示一下如何使用 Vue CLI 创建项目。
创建项目
在终端中输入以下命令来创建新项目
vue create todo-list
安装 Element UI
在终端中进入项目目录安装 Element UI
cd todo-list
npm install element-ui --save
编写组件和样式
在 src/components 目录下创建一个 TodoList.vue 文件编写 TodoList 组件的代码
templatediv classtodo-listel-inputclassadd-todo-inputv-modelnewTodoplaceholder请输入待办事项keyup.enter.nativeaddTodosizelarge/el-inputul classtodosli v-for(todo, index) in todos :keyindex classtodoel-checkbox v-modeltodo.done{{ todo.text }}/el-checkboxel-button typetext clickdeleteTodo(index)删除/el-button/li/ul/div
/templatescriptexport default {data() {return {newTodo: ,todos: []}},methods: {addTodo() {if (this.newTodo ! ) {this.todos.push({text: this.newTodo,done: false})this.newTodo }},deleteTodo(index) {this.todos.splice(index, 1)}}}
/scriptstyle scoped.todo-list {max-width: 600px;margin: 0 auto;padding: 20px;box-sizing: border-box;}.add-todo-input {width: 100%;margin-bottom: 20px;}.todos {list-style: none;padding: 0;}.todo {display: flex;align-items: center;margin-bottom: 10px;}.todo .el-checkbox {flex: 1;}
/style
在样式中使用了 Element UI 提供的样式类使 TodoList 组件具有了基本的样式。
在 App.vue 中使用 TodoList 组件
在 src/App.vue 文件中使用 TodoList 组件并导入 Element UI 的样式
templatediv idappdiv classcontainerh1 classtitleVue TodoList/h1TodoList //div/div
/templatescriptimport TodoList from ./components/TodoList.vueimport element-ui/lib/theme-chalk/index.cssexport default {name: App,components: {TodoList}}
/scriptstyle.container {max-width: 800px;margin: 0 auto;padding: 20px;box-sizing: border-box;}.title {text-align: center;}
/style
运行项目
在终端中输入以下命令来启动开发服务器
npm run serve
打开浏览器访问 http://localhost:8080就可以看到 TodoList 效果。
以上的例子主要演示了如何使用 Vue CLI 创建项目、如何使用 Element UI 完成新建 Todo 和删除 Todo 的功能以及如何将实现的组件和样式引入到 App.vue 中使用。
双向绑定
Vue.js 的双向绑定是指界面上的数据与数据源通常是 JavaScript 对象之间的双向绑定即当界面上的数据发生变化时数据源也会跟随变化并且当数据源发生变化时界面上显示的数据也会相应地更新。Vue.js 借助于其响应式系统实现了这个双向绑定机制使得开发者可以方便地实现数据与界面之间的同步。
下面是一个简单的双向绑定的例子通过 v-model 指令将 message 与文本框的值进行双向绑定
div idappinput v-modelmessagep{{ message }}/p
/div
new Vue({el: #app,data: {message: Hello Vue.js!}
});
在上面的例子中当文本框中的值发生变化时message 会随之更新当 message 的值发生变化时界面上显示的文本也会相应更新。
Vue.js 的双向绑定机制是通过实现一个响应式的数据模型来实现的。当数据模型的某个属性发生变化时Vue.js 的响应式系统会自动检测变化并更新相应的 DOM 元素从而实现数据与界面的同步更新。需要注意的是Vue.js 的双向绑定机制只适用于一些表单元素如 input、textarea、select 等对于其他 DOM 元素的双向绑定则需要使用自定义指令等方式实现。
refs使用
ref 是 Vue.js 提供的一个指令可以用来在 DOM 元素或组件上添加一个唯一的标识。通过 ref我们可以在组件内部直接获取到对应的 DOM 元素或组件实例从而方便地操作其属性或方法。
下面是一个 ref 的例子我们通过 ref 将一个输入框和按钮分别标识为 input 和 button并在组件内部使用 $refs 属性来获取对应的 DOM 元素
templatedivinput typetext refinputbutton clickhandleClick refbutton点击/button/div
/templatescript
export default {methods: {handleClick() {console.log(this.$refs.input.value);console.log(this.$refs.button.innerText);}}
};
/script
在上面的例子中我们在模板中为输入框和按钮分别添加了 ref 属性并分别指定为 input 和 button。在组件内部的 handleClick 方法中我们使用了 $refs 属性来获取对应的 DOM 元素从而获取输入框的值和按钮的文本内容。
需要注意的是为了使 $refs 属性生效我们必须在组件被挂载到 DOM 后才能访问 $refs。因此在上面的例子中我们必须等到按钮被点击时才能访问 $refs。
另外需要注意的是使用 ref 可能会破坏 Vue.js 的数据驱动机制因为我们直接操作了 DOM 元素或组件实例而不是通过修改数据来更新界面。因此在使用 ref 时需要注意谨慎使用避免出现意料之外的结果。
点击事件进行请求
templatedivbutton clickfetchData点击获取数据/buttondiv v-ifloadingLoading.../divdiv v-iferror{{ error }}/divul v-ifdatali v-for(item, index) in data :keyindex{{ item }}/li/ul/div
/templatescript
import axios from axios;export default {data() {return {loading: false, // 是否正在加载数据error: null, // 错误消息data: null // 获取到的数据};},methods: {fetchData() {this.loading true;this.error null;axios.get(/api/data).then(response {this.loading false;this.data response.data;}).catch(error {this.loading false;this.error error.message;});}}
};
/script
在上面的例子中我们在模板中定义了一个按钮绑定了 fetchData 方法。在 fetchData 方法中我们首先设置 loading 属性为 true用于在界面上显示“正在加载”的提示。然后我们使用 axios 库发送了一个 GET 请求并在 then 回调中将 loading 属性设置为 false将获取到的数据赋值给 data 属性。如果请求出现错误则在 catch 回调中将 loading 属性设置为 false将错误消息赋值给 error 属性。
在模板中我们使用了 Vue.js 的条件渲染指令 v-if 来根据 loading、error 和 data 属性的值来显示不同的内容。如果 loading 属性为 true则显示“Loading...”如果 error 属性不为 null则显示错误消息如果 data 属性不为 null则使用 v-for 指令遍历数据并渲染到列表中。