vue.js 菜鸟教程(vue.js入门教程)

vue.js 菜鸟教程(vue.js入门教程)Vue js 是用于构建交互式的 Web 界面的库 Vue js 提供了 MVVM 数据绑定和一个可组合的组件系统 具有简单 灵活的 API 本章节是关于 Vue1 x 版本的内容 如需查看 Vue2 x 可点以下链接 Vue js2 0 教程 http www runoob com vue2 vue tutorial html Vue2 0 新手入门 http www

大家好,我是讯享网,很高兴认识大家。



Vue.js 是用于构建交互式的 Web 界面的库。

Vue.js 提供了 MVVM 数据绑定和一个可组合的组件系统,具有简单、灵活的 API。


讯享网

本章节是关于 Vue1.x 版本的内容,如需查看 Vue2.x,可点以下链接。

Vue.js2.0 教程:http://www.runoob.com/vue2/vue-tutorial.html

Vue2.0 新手入门:http://www.runoob.com/w3cnote/vue2-start-coding.html

Vue.js3.x 教程:https://www.runoob.com/vue3/vue3-tutorial.html

  • 简洁: HTML 模板 + JSON 数据,再创建一个 Vue 实例,就这么简单。
  • 数据驱动: 自动追踪依赖的模板表达式和计算属性。
  • 组件化: 用解耦、可复用的组件来构造界面。
  • 轻量: ~24kb min+gzip,无依赖。
  • 快速: 精确有效的异步批量 DOM 更新。
  • 模块友好: 通过 NPM 或 Bower 安装,无缝融入你的工作流。

如果你喜欢下面这些,那你一定会喜欢 Vue.js:

  • 可扩展的数据绑定机制
  • 原生对象即模型
  • 简洁明了的 API
  • 组件化 UI 构建
  • 多个轻量库搭配使用

直接下载并用 <script> 标签引入,Vue 会被注册为一个全局变量。

Vue.js 官网下载地址:http://vuejs.org/guide/installation.html

我们可以在官网上直接下载生产版本应用在我们项目中。

或者可以使用静态资源 CDN 库(1.0.18版本):

 https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/1.0.18/vue.min.js 

讯享网

在用 Vue.js 构建大型应用时推荐使用 NPM 安装:

讯享网 # 最新稳定版本 $ npm install vue # 最新稳定 CSP 兼容版本 $ npm install vue@csp # 开发版本(直接从 GitHub 安装) $ npm install vuejs/vue#dev 
 # 最新稳定版本 $ bower install vue 

接下来我们创建第一个 Vue 应用。

View 层 - HTML 代码如下:

讯享网 <div id="app"> {{ message }} </div> 

Model 层 - JavaScript 代码如下(需放在指定的HTML元素之后):

 new Vue({ el:'#app', data: { message:'Hello World!' } }); 


接下来我们创建一个 view 层 HTML 文件:vueapp.htm,以及 model 层文件:vueapp.js,然后通过 vue.js(使用v-model这个指令)完成中间的底层逻辑,实现绑定的效果。改变其中的任何一层,另外一层都会改变。

vueapp.htm 文件代码:

讯享网 <div id="app"> <p>{{ message }}</p> <input v-model="message"> </div> 

vueapp.js 文件代码:

 new Vue({ el: '#app', data: { message: '菜鸟教程!' } }) 

以上实例中 {{message}} 会根据输入框 input 的改变而改变,如果你不想让其变化可以修改为:

讯享网 {{* message }} 

同时还支持一些简单的表达式:

 <!-- 字符串连接 --> {{ message + '官网地址:www.runoob.com' }} <!-- 字符串反转 --> {{ message.split('').reverse().join('') }} 

列表输出使用 v-for(v-for取代了1.0以前版本中的v-repeat) 这个指令就能完成:

讯享网
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta charset=“utf-8”&gt;
&lt;title&gt;菜鸟教程(runoob.com)&lt;/title&gt;
&lt;script src=”https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/1.0.18/vue.min.js”&gt;&lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;div id=“app”&gt; &lt;ul&gt; 
&lt;li v-for="todo in todos"&gt; {{ todo.text }} &lt;/li&gt; 
&lt;/ul&gt; &lt;/div&gt; &lt;script&gt; &nbsp;&nbsp;&nbsp;&nbsp;new Vue({ el: ‘#app’, data: {
讯享网todos: [ { text: 'Learn JavaScript' }, { text: 'Learn Vue.js' }, { text: 'Build Something Awesome' } ] 
} }) &lt;/script&gt; &lt;/body&gt; &lt;/html&gt;

多维数组实例

 &lt;div id=“app”&gt; &lt;ul id=“example-2”&gt; &lt;li v-for=“item in items”&gt; 
讯享网{{ parentMessage }} - {{ $index }} - {{ item.message }} 
&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;script&gt; var example2 = new Vue({ el: ‘#example-2’, data: {
parentMessage: '菜鸟教程官网', items: [ { message: 'www.runoob.com' }, { message: 'www.runoob.com' } ] 
} }) &lt;/script&gt;


在字符串模板中,如 Handlebars,我们得像这样写一个条件块:

讯享网 &lt;!– Handlebars 模板 –&gt; {{#if ok}} &lt;h1&gt;Yes&lt;/h1&gt; {{/if}} 

在 Vue.js,我们使用 v-if 指令实现同样的功能:

 &lt;h1 v-if=“ok”&gt;Yes&lt;/h1&gt; 

也可以用 v-else 添加一个 “else” 块:

讯享网 &lt;h1 v-if=“ok”&gt;Yes&lt;/h1&gt; &lt;h1 v-else&gt;No&lt;/h1&gt; 

因为 v-if 是一个指令,需要将它添加到一个元素上。但是如果我们想切换多个元素呢?此时我们可以把一个 &lt;template&gt; 元素当做包装元素,并在上面使用 v-if,最终的渲染结果不会包含它。

 &lt;template v-if=“ok”&gt; &lt;h1&gt;Title&lt;/h1&gt; &lt;p&gt;Paragraph 1&lt;/p&gt; &lt;p&gt;Paragraph 2&lt;/p&gt; &lt;/template&gt; 

v-show作用与v-if类似,不同的是v-show的元素会始终渲染并保持在 DOM 中,且v-show不支持&lt;template&gt;标签。

讯享网&lt;h1 v-show=“ok”&gt;Hello!&lt;/h1&gt;

与Linux中的管道类似,vue.js也使用的是|:

 {{message | uppercase}}

这样就能输出message的大写了,过滤器也能串联在一起使用:

讯享网 {{message | reverse | uppercase}}

这里reverse并不是内建的过滤器,我们可以用Vue.filter自定义:

 Vue.filter(‘reverse’, function (value) { 
讯享网return value.split('').reverse().join('') 
})


官网:http://vuejs.org/

官方文档:http://cn.vuejs.org/examples/

小讯
上一篇 2025-04-16 18:40
下一篇 2025-05-01 12:10

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/148772.html